Pagini recente »
Monitorul de evaluare
|
Borderou de evaluare (job #233670)
|
Diferențe pentru runda/concursu între reviziile 4 și 3
|
Istoria paginii utilizator/ioanpet2001
|
Cod sursă (job #294448)
Cod sursă (job
#294448)
#include <ctype.h>
#include <stdio.h>
#define MAX_LEN 100000
int st[MAX_LEN / 2], ss;
int peek;
FILE *f;
int consume() {
int result = peek;
do {
peek = fgetc(f);
} while (isspace(peek));
return result;
}
int E();
void L() {
st[ss++] = E();
while (peek == ',') {
consume();
st[ss++] = E();
}
}
int E() {
int r = 0;
while (isdigit(peek)) {
r = r * 10 + (peek - '0');
consume();
}
int ssSave = ss;
while (peek == '(') {
consume();
L();
consume();
r = st[ssSave + (r - 1) % (ss - ssSave)];
ss = ssSave;
}
return r;
}
int main(void) {
f = fopen("bizar.in", "r");
consume();
int result = E();
fclose(f);
f = fopen("bizar.out", "w");
fprintf(f, "%d\n", result);
fclose(f);
}