Submission #338060

#TimeUsernameProblemLanguageResultExecution timeMemory
338060NimbostratusRestore Array (RMI19_restore)C++17
38 / 100
67 ms640 KiB
#include <bits/stdc++.h> #define mt make_tuple using namespace std; typedef long long ll; const ll INF = 1e15; int N,M; string ans; vector<tuple<int,int,int,int>> q; int32_t main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); //freopen("in","r",stdin); //freopen("out","w",stdout); cin >> N >> M; for(int i=0;i<N;i++) ans += '2'; q.resize(M); for(int i=0;i<M;i++) { int l,r,k,v; cin >> l >> r >> k >> v; q[i] = mt(l,r,k,v); } for(int i=0;i<M;i++) { int l,r,k,v; tie(l,r,k,v) = q[i]; if(v == 1 and k == 1) for(int i=l;i<=r;i++) ans[i] = '1'; if(v == 0 and k == r-l+1) for(int i=l;i<=r;i++) if(ans[i] == '1') { cout << -1 << endl; return 0; } else ans[i] = '0'; } for(int i=0;i<M;i++) { int l,r,k,v; tie(l,r,k,v) = q[i]; if(v == 0 and k == 1) { bool flag = 0; for(int i=l;i<=r;i++) { if(ans[i] == '0') flag = 1; if(ans[i] == '2' and !flag) { ans[i] = '0'; flag = 1; } } if(!flag) { cout << -1 << endl; return 0; } } if(v == 1 and k == r-l+1) { bool flag = 0; for(int i=l;i<=r;i++) { if(ans[i] == '1') flag = 1; if(ans[i] == '2' and !flag) { ans[i] = '1'; flag = 1; } } if(!flag) { cout << -1 << endl; return 0; } } } for(int i=0;i<N;i++) cout << (ans[i] == '2' ? '1' : ans[i]) << " "; }

Compilation message (stderr)

restore.cpp: In function 'int32_t main()':
restore.cpp:33:5: warning: suggest explicit braces to avoid ambiguous 'else' [-Wdangling-else]
   33 |   if(v == 0 and k == r-l+1)
      |     ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...