Cod sursă (job #285101)

Utilizator avatar Therevengerking Surani Adrian Therevengerking IP ascuns
Problemă Bizar (clasele 9-10) Compilator cpp | 0,69 kb
Rundă Arhiva de probleme Status evaluat
Dată 25 feb. 2017 11:47:01 Scor 40
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("bizar.in");
ofstream fout("bizar.out");
string s;
int i=0,nr;
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 {i++;v.push_back(eval(val));}
        if(s[i]!=')')++i;
    }++i;
    poz=poz%v.size();
    if(poz)return v[poz-1];
    return v[v.size()-1];
}
int main()
{
    fin>>s;nr=0;
    while(s[i]!='(')
    {nr=nr*10+s[i]-'0';++i;}
    ++i;
    fout<<eval(nr);
    return 0;
}