Pagini recente » Cod sursa (job #879364) | Cod sursa (job #495742) | Cod sursa (job #1147975) | Cod sursa (job #2289839) | Cod sursa (job #1853870)
#include <fstream>
#include <string.h>
using namespace std;
int n, index;
char s[100001];
int termen();
int expresie();
int termen() {
int nr = 0;
if (s[index] == '(') {
return expresie();
}
while (s[index] >= '0' && s[index] <= '9' && index < n) {
nr = nr * 10 + (s[index] - '0');
index++;
}
return nr;
}
int expresie() {
int val = 0;
while (index < n && s[index] != ')') {
char c = s[index];
if (c == '(') {
index++;
val = expresie();
}
else if (c == 'm') {
index++;
val = min(val, termen());
}
else if (c == 'M') {
index++;
val = max(val, termen());
}
else {
val = termen();
}
}
index++;
return val;
}
int main() {
ifstream in("emm.in");
ofstream out("emm.out");
in >> s;
n = strlen(s);
out << expresie();
return 0;
}