-
Notifications
You must be signed in to change notification settings - Fork 59
/
Copy pathexpresie.cpp
49 lines (47 loc) · 837 Bytes
/
expresie.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# include <fstream>
# include <cstring>
# include <algorithm>
# define NR 1005
using namespace std;
ifstream f("expresie.in");
ofstream g("expresie.out");
int i,j,n,m,VV,S;
char s[NR];
int numar ()
{
int nr=0;
while ('0'<=s[VV] && s[VV]<='9')
{ nr=nr*10+s[VV]-'0'; ++VV; } //include trecerea de ]
return nr;
}
int base ()
{
int nr=0;
if (s[VV]=='[') //e un nou [
{
while (s[VV]=='[')
{
++VV; //trec direct peste '['
nr+=base();
}
++VV; //sa trec de ]
}
else //este numar
{
nr=numar();
++VV; //trec de la un nou [
}
return nr/2;
}
int main ()
{
f.getline(s+1, NR); n=strlen(s+1);
VV=1;
while (VV<=n)
{
++VV; //trec direct peste '['
S+=base ();
}
g<<S<<"\n";
return 0;
}