Pagini recente »
Borderou de evaluare (job #408047)
|
Cod sursă (job #142524)
|
mult_prea_simplu
|
Cod sursă (job #101786)
Cod sursă (job
#101786)
#include <stdio.h>
#include <stdlib.h>
FILE*fi,*fout;
char a;
int stiva[100000],nr2;
void blanc(){
while(a==' ')
a=fgetc(fi);
}
int num(){
int x=0;
while(a>='0'&&a<='9'){
x=x*10+a-'0';
a=fgetc(fi);
}
return x;
}
int E(int in){
int nr,in1=in,i;
blanc();
if(a=='(')
nr=nr2;
else
nr=num();
blanc();
if(a!='(')
return nr;
else{
a=fgetc(fi);
blanc();
stiva[in]=E(in+1);
blanc();
while(a==','){
a=fgetc(fi);
blanc();
in++;
stiva[in]=E(in);
blanc();
}
if(a==')'){
a=fgetc(fi);
blanc();
if(nr%(in-in1+1)==0){
nr2=stiva[in];
return stiva[in];
}
else{
nr2=stiva[in1+nr%(in-in1+1)-1];
return stiva[in1+nr%(in-in1+1)-1];
}
}
}
}
int main(){
int x;
fi=fopen("bizar.in" ,"r");
fout=fopen("bizar.out" ,"w");
a=fgetc(fi);
x=E(0);
while(a=='(')
x=E(0);
fprintf(fout,"%d" ,x);
fclose(fi);
fclose(fout);
return 0;
}