This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
using namespace std;
#define db(val) "["#val" = "<<(val)<<"] "
#define FOR(i,l,r) for(int i=(l);i<=(r);i++)
#define FOD(i,l,r) for(int i=(l);i>=(r);i--)
#define REP(i,l,r) for(int i=(l);i<(r);i++)
#define task ""
#define all(v) v.begin(),v.end()
#define uniq(v) v.resize(unique(all(v))-v.begin())
#define siz(v) (int32_t)(v.size())
#define left L392324
#define data UWU
#define right H392324
mt19937_64 rd(chrono::steady_clock::now().time_since_epoch().count());
using ll=long long;
using pii=pair<int,int>;
template<class T,class U> void MAX(T &x,U y){if(x<y)x=y;}
template<class T,class U> void MIN(T &x,U y){if(y<x)x=y;}
inline ll rand(ll l,ll r){
return uniform_int_distribution<ll>(l,r)(rd);
}
void RESET();
void AC();
void sinhtest(){
ofstream cout("input.txt");
cout.close();
}
int32_t main(){
cin.tie(0)->ios::sync_with_stdio(0);
// sinhtest();
#ifdef trinhcham
freopen("test_input.inp","r",stdin);
freopen("test_output.out","w",stdout);
#else
if(fopen("input.txt","r")){
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
freopen(".log","w",stderr);
}else if(fopen(task".inp","r")){
freopen(task".inp","r",stdin);
freopen(task".out","w",stdout);
}
#endif
/// [=============================]
constexpr bool MULTITEST=0;
/// [=============================]
ll TESTCASES=1;
if(MULTITEST)cin>>TESTCASES;
FOR(test,1,TESTCASES){
RESET();
AC();
cout<<'\n';
}
}
void RESET(){
}
void AC(){
using tp=tuple<int,int,int>;
stack<int> dau;
stack<tp> so;
#define Max 1
#define Min 0
char c;
while(cin>>c){
if(c=='m'){///m**(
char s;cin>>s;
if(s=='a'){///max
dau.push(Max);
}else{///min
dau.push(Min);
}
cin>>s>>s;
}else if(c=='?'){///?
so.emplace(1,1,1);
}else if(c==')'){
int curd=dau.top();
dau.pop();
int L,a,b,R,c,d;
tie(L,a,b)=so.top();
so.pop();
tie(R,c,d)=so.top();
so.pop();
if(curd==Max)
so.emplace(L+R,a+c,max(L+d,R+b));
else so.emplace(L+R,min(a,c),b+d-1);
}
///skip ,
}
int _,l,r;tie(_,l,r)=so.top();
cout<<r-l+1;
}
Compilation message (stderr)
Main.cpp: In function 'int32_t main()':
Main.cpp:50:17: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
50 | freopen("input.txt","r",stdin);
| ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
Main.cpp:51:17: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
51 | freopen("output.txt","w",stdout);
| ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
Main.cpp:52:17: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
52 | freopen(".log","w",stderr);
| ~~~~~~~^~~~~~~~~~~~~~~~~~~
Main.cpp:54:17: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
54 | freopen(task".inp","r",stdin);
| ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
Main.cpp:55:17: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
55 | freopen(task".out","w",stdout);
| ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |