Submission #441477

#TimeUsernameProblemLanguageResultExecution timeMemory
441477Haruto810198Alternating Current (BOI18_alternating)C++17
13 / 100
3080 ms4276 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define double long double #define FOR(i, l, r, d) for(int i=(l); i<=(r); i+=(d)) #define szof(x) ((int)(x).size()) #define vi vector<int> #define pii pair<int,int> #define F first #define S second #define pb push_back #define eb emplace_back #define mkp make_pair const int INF = 2147483647; const int LNF = INF*INF; const int MOD = 1000000007; const int mod = 998244353; //#pragma GCC optimize("Ofast") //#pragma GCC optimize("unroll-loops") const int MAX = 100010; int n, m; int L[MAX], R[MAX]; int cnt1[MAX], cnt2[MAX]; int res[MAX]; bool solved; void check(int mask){ vi arr; FOR(i, 0, m-1, 1){ if((mask & (1<<i)) != 0){ arr.pb(1); } else{ arr.pb(0); } } FOR(i, 1, n, 1){ cnt1[i] = 0; cnt2[i] = 0; } FOR(i, 0, m-1, 1){ if(arr[i]==1){ if(L[i] <= R[i]){ FOR(j, L[i], R[i], 1){ cnt1[j]++; } } else{ FOR(j, L[i], n, 1){ cnt1[j]++; } FOR(j, 1, R[i], 1){ cnt1[j]++; } } } else{ if(L[i] <= R[i]){ FOR(j, L[i], R[i], 1){ cnt2[j]++; } } else{ FOR(j, L[i], n, 1){ cnt2[j]++; } FOR(j, 1, R[i], 1){ cnt2[j]++; } } } } bool flag = 1; FOR(i, 1, n, 1){ if(cnt1[i]==0 or cnt2[i]==0){ flag = 0; } } if(flag){ solved = 1; FOR(i, 0, m-1, 1){ res[i] = arr[i]; } } } signed main(){ ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin>>n>>m; FOR(i, 0, m-1, 1){ cin>>L[i]>>R[i]; } solved = 0; FOR(mask, 0, (1<<m)-1, 1){ check(mask); } if(solved){ FOR(i, 0, m-1, 1){ cout<<res[i]; } cout<<'\n'; } else{ cout<<"impossible"<<'\n'; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...