Pagini recente »
Istoria paginii utilizator/iulia_ivana
|
Istoria paginii utilizator/popirdamaria
|
Cod sursă (job #339440)
|
Istoria paginii utilizator/iulia_ivana
|
Cod sursă (job #757265)
Cod sursă (job
#757265)
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
using namespace std;
ifstream fin("bizar.in");
ofstream fout("bizar.out");
string s;
size_t i;
int get_num(size_t& i) {
string nr;
while (isdigit(s[i])) {
nr.push_back(s[i]);
++i;
}
return stoi(nr);
}
vector<int> f(size_t& i) {
int c = 1;
vector<int> vec;
while (i < s.size()) {
if (isdigit(s[i])) {
c = get_num(i);
}
else if (s[i] == '(') {
++i;
vector<int> aux = f(i);
c %= aux.size();
if (c)
c = aux[c - 1];
else c = aux[aux.size() - 1];
++i;
}
else if (s[i] == ',') {
vec.push_back(c);
++i;
}
else if (s[i] == ')') {
vec.push_back(c);
return vec;
}
else {
++i;
}
}
vec.push_back(c);
return vec;
}
int main()
{
getline(fin, s);
vector<int> ans = f(i);
fout << ans[0];
return 0;
}