Pagini recente »
Rating Ionescu Andrei (Andrei_Info)
|
Istoria paginii runda/2022-02-05-clasa-5-concurs04-cursuri-performanta/clasament
|
Clasament antrenament_clasa_a_6-a
|
tema05-juniori-2014-2015
|
Cod sursă (job #239657)
Cod sursă (job
#239657)
#include <fstream>
#include <cstring>
using namespace std;
ifstream fin ("bizar.in");
ofstream fout ("bizar.out");
#define MAXD 100001
char a[MAXD];
long long nr[MAXD], num;
int paranteze[MAXD], l, indnr, indpr;
int main()
{
fin.getline(a, MAXD -1);
l = strlen(a);
for (int i =0; i<l; i++)
{
while (a[i] == ' ' || a[i] == ',')i++;
if (a[i] >= '0' && a[i] <= '9')
{
num =0;
while(a[i] >= '0' && a[i] <= '9')
{
num = num*10 + a[i] - '0';
i++;
}
i--;
nr[++indnr] = num;
}
else if (a[i] == '(')paranteze[++indpr]=indnr+1;
else if (a[i] == ')')
{
int rep, x;
rep = indnr - paranteze[indpr] + 1;
x = (nr[paranteze[indpr] - 1])%rep;
if (x == 0)x = rep;
nr[paranteze[indpr] - 1] = nr[x + paranteze[indpr] - 1];
indnr = paranteze[indpr] - 1;
indpr--;
}
}
fout << nr[1];
return 0;
}