Cod sursă (job #149807)

Utilizator avatar Robert Popovici Robert Robert IP ascuns
Problemă Bizar (clasele 9-10) Compilator c | 0,79 kb
Rundă Arhiva de probleme Status evaluat
Dată 24 iun. 2015 11:41:10 Scor 100
#include <stdio.h>
#include <stdlib.h>
#define MAXN 100000
FILE*fi,*fout;
char a;
int v[MAXN];
inline void blanc(){
    a=fgetc(fi);
    while(a==' ')
      a=fgetc(fi);
}
inline int numar(){
    int nr=0;
    while(a>='0'&&a<='9'){
        nr=nr*10+a-'0';
        a=fgetc(fi);
    }
    while(a==' ')
        a=fgetc(fi);
    return nr;
}
int E(int p1){
    int nr,p2;
    nr=numar();
    while(a=='('){
        p2=p1;
        blanc();
        while(a>='0'&&a<='9'){
            v[p2]=E(p2);
            p2++;
            blanc();
        }
        nr=v[p1+(nr-1)%(p2-p1)];
    }
    return nr;
}
int main(){
    fi=fopen("bizar.in" ,"r");
    fout=fopen("bizar.out" ,"w");
    blanc();
    fprintf(fout,"%d" ,E(0));
    fclose(fi);
    fclose(fout);
    return 0;
}