Submission #338056

#TimeUsernameProblemLanguageResultExecution timeMemory
338056NimbostratusRestore Array (RMI19_restore)C++17
13 / 100
50 ms748 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; //if(N <= 18) //{ // 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<(1<<N);i++) // { // string cur; // for(int k=0;k<N;k++) // cur = char('0' + !!(i&(1<<k))) + cur; // int pre[cur.size()+5]; // pre[0] = (cur[0] - '0'); // for(int i=1;i<cur.size();i++) // pre[i] = pre[i-1] + (cur[i] - '0'); // bool flag = 1; // for(int i=0;i<M and flag;i++) // { // int l,r,k,v; // tie(l,r,k,v) = q[i]; // //cout << l << " " << r << " " << k << " " << v << endl; // int onecnt = pre[r] - (l == 0 ? 0 : pre[l-1]); // if(v == 0) // flag = flag and ((r-l+1)-onecnt >= k); // else // flag = flag and ((r-l+1)-onecnt < k); // } // if(flag) // { // for(int i=0;i<cur.size();i++) // cout << int(cur[i]-'0') << " "; // return 0; // } // } // cout << -1 << endl; // return 0; //} 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) for(int i=l;i<=r;i++) ans[i] = '1'; } for(int i=0;i<M;i++) { int l,r,k,v; tie(l,r,k,v) = q[i]; if(v == 0) { 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; } } } for(int i=0;i<N;i++) cout << (ans[i] == '2' ? '1' : ans[i]) << " "; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...