Pagini recente »
Istoria paginii utilizator/mateimortici
|
Cod sursă (job #522798)
|
Istoria paginii utilizator/mihaisandulescu
|
Istoria paginii utilizator/ana_mitrofan
|
Cod sursă (job #285133)
Cod sursă (job
#285133)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("bizar.in");
ofstream fout("bizar.out");
string s,act;
int i=0,nr,r;
int eval(int poz)
{
int val;
vector<int>v;
while(i<s.size() && s[i]!=')')
{
val=0;
while(s[i]!='(' && s[i]!=')' && s[i]!=',')
{val=val*10+s[i]-'0';++i;}
if(s[i]!='(')v.push_back(val);
else
{
while(s[i]=='(')
{
i++;
val=eval(val);v.push_back(val);
}
}
if(s[i]!=')')++i;
}++i;
poz=poz%v.size();
if(poz)return v[poz-1];
return v[v.size()-1];
}
int main()
{
getline(fin,act);nr=0;
for(int i=0;i<act.size();++i)if(act[i]!=' ')s.push_back(act[i]);
while(s[i]!='(')
{nr=nr*10+s[i]-'0';++i;}
++i;
while(s[i-1]=='('){nr=eval(nr);++i;}
fout<<nr;
return 0;
}