Pagini recente »
Istoria paginii utilizator/matei140401
|
Istoria paginii utilizator/iulianbog
|
Istoria paginii runda/simulare_info_11
|
Istoria paginii utilizator/iulianbog
|
Cod sursă (job #97938)
Cod sursă (job
#97938)
#include <cstdio>
#include <cctype>
#include <vector>
using namespace std;
char str[100002];
int size, sp;
int expr();
int num();
vector<int> list();
int expr(){
int rez=num();
while(str[sp]=='('){
vector<int> v=list();
rez=v[(rez-1)%v.size()];
}
return rez;
}
vector<int> list(){
vector<int> rez;
sp++;
while(str[sp-1]!=')'){
rez.push_back(expr());
sp++;
}
return rez;
}
int num(){
int rez=0;
while (isdigit(str[sp])) {
rez=rez*10+str[sp++]-'0';
}
return rez;
}
int main()
{
freopen("bizar.in", "r", stdin);
freopen("bizar.out", "w", stdout);
while((str[size++]=fgetc(stdin))!='\n'){
if(str[size-1]==' ')
size--;
}
printf("%d", expr());
return 0;
}