Pagini recente »
Borderou de evaluare (job #31306)
|
Borderou de evaluare (job #43503)
|
Borderou de evaluare (job #161504)
|
Borderou de evaluare (job #561907)
|
Cod sursă (job #287105)
Cod sursă (job
#287105)
//#include "stdafx.h"
#include <fstream>
#include <string>
#include <vector>
using namespace std;
ifstream in("bizar.in");
ofstream out("bizar.out");
string s, expr;
vector<int> v;
int i;
int get_num()
{
int num = 0;
while (isdigit(s[i]))
{
num = num * 10 + s[i] - '0';
++i;
}
return num;
}
int get_expr_val()
{
int pos;
pos = get_num();
while (s[i] == '(')
{
vector<int> v;
while (s[i] != ')')
{
i++;
v.push_back(get_expr_val());
}
++i;
pos = v[(pos + v.size() - 1) % v.size()];
}
return pos;
}
int main()
{
getline(in, expr);
for (int i = 0; i < expr.size(); ++i)
if (expr[i] != ' ')
s.push_back(expr[i]);
out << get_expr_val();
}