Pagini recente »
Istoria paginii utilizator/florinflorin
|
Statistici Scinteie Alexandra (ScinteieAlexandra)
|
Borderou de evaluare (job #156906)
|
Cod sursă (job #77647)
|
Cod sursă (job #440741)
Cod sursă (job
#440741)
#include <bits/stdc++.h>
using namespace std;
ifstream in("bizar.in");
ofstream out("bizar.out");
const int LMAX = 100001;
char s[LMAX];
inline bool cif(char a) {
return a >= '0' && a <= '9';
}
int analyseElement(int&);
int parse(int& p, int x) {
vector<int> secv;
while(s[p] != ')' && s[p] != 0) {
if(cif(s[p])) secv.push_back(analyseElement(p));
else p++;
}
p++;
int k = secv.size();
if(x%k == 0) return secv[k-1];
return secv[x%k-1];
}
int analyseElement(int& p) {
int sol = 0;
while(s[p] != ',' && s[p] != ')' && s[p] != 0) {
if(cif(s[p])) {
int nr = 0;
while(cif(s[p]))
nr = nr*10 + s[p++] - '0';
while(s[p] == ' ')
p++;
if(s[p] == '(') {
p++;
sol = parse(p, nr);
} else return nr;
} else if(s[p] == '(')
p++, sol = parse(p, sol);
else p++;
}
return sol;
}
int main()
{
in.get(s, LMAX);
int p = 0, nr = 0, sol = 0;
sol = analyseElement(p);
out << sol << '\n';
return 0;
}