Pagini recente »
Istoria paginii runda/oni21/clasament
|
Borderou de evaluare (job #201768)
|
Istoria paginii runda/lasm_20_01_2020_10/clasament
|
Istoria paginii runda/2015-11-19-clasa-7-tema-10/clasament
|
Cod sursă (job #434687)
Cod sursă (job
#434687)
#include <iostream>
#include <vector>
#include <algorithm>
#include <fstream>
using namespace std;
int st[100005], top;
char s[100005];
ifstream fin ("bizar.in");
ofstream fout ("bizar.out");
const int bracket = 2E9;
int main()
{
int x, val, dr;
fin.getline(s, 100005);
for (int i = 0; s[i];)
{
if ('0' <= s[i] && s[i] <= '9')
{
x = 0;
while ('0' <= s[i] && s[i] <= '9')
{
x = x * 10 + s[i] - '0';
i++;
}
st[++top] = x;
}
else if (s[i] == ' ' || s[i] == ',')
i++;
else if (s[i] == '(')
{
st[++top] = bracket;
i++;
}
else /// s[i] = ')'
{
dr = top;
while (st[dr] != bracket)
dr--;
x = st[dr - 1];
val = top - dr;
x %= val;
if (x == 0) x = val;
st[dr - 1] = st[dr + x];
top = dr - 1;
i++;
}
/**for (int j = 1; j <= top; j++)
fout << st[j] << " ";
fout << "\n\n";*/
}
fout << st[1] << "\n";
fout.close();
return 0;
}