Pagini recente » Cod sursa (job #2036174) | Cod sursa (job #2295481) | Cod sursa (job #1982778) | Cod sursa (job #519799) | Cod sursa (job #249124)
Cod sursa(job #249124)
#include <fstream.h>
#include <string.h>
ifstream f("emm.in");
ofstream g("emm.out");
char e[100009]; long s[100009]; char op [100009]; long int v1,v,n,i;
long numar()
{
long int x=0;
while(e[i]>='0'&&e[i]<='9'&&i<n)
{x=x*10+(e[i]-'0'); i++;}
i--;
return x;
}
long max (long int a, long int b)
{if(a>=b) return a;
else return b;
}
long min (long int a,long int b)
{if (a<=b) return a;
else return b;
}
void evaluez ()
{
if(op[v1]=='m') { s[v-1]=min(s[v],s[v-1]);
v1--;v--;}
else
if(op[v1]=='M') {s[v-1]=max(s[v],s[v-1]);
v--;v1--;}
}
int main ()
{
f.getline(e,10001);
n=strlen(e);
for(i=0;i<n;i++)
switch (e[i])
{case 'm':
case 'M':
case '(': v1++;
op[v1]=e[i];
break;
case ')': while( op[v1]!='(')
evaluez();
v1--;
evaluez();
break;
default: v++; s[v]=numar();
if(v1!=0)evaluez();
}
if(v1!=0) evaluez();
g<<s[1]<<'\n';
f.close();
g.close();
return 0;
}