#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define fi first
#define se second
#define pb push_back
#define vi vector<int>
#define vl vector<ll>
#define pi pair<int, int>
#define pl pair<ll,ll>
#define all(x) (x).begin(),(x).end()
int32_t main() {
ios::sync_with_stdio(0);
cin.tie(0);
int n,m;
cin >> n >> m;
vector<pi> inte(m);
for (int i=0; i<m; i++) {
cin >> inte[i].fi >> inte[i].se;
inte[i].fi--;
inte[i].se--;
}
for (int msk=0; msk<(1<<m); msk++) {
vi ok1(n,0),ok2(n,0);
for (int i=0; i<m; i++) {
if (msk&(1<<i)) {
for (int j=inte[i].fi; ; j=(j+1)%n) {
ok1[j]=1;
if (j==inte[i].se) {
break;
}
}
}
else {
for (int j=inte[i].fi; ; j=(j+1)%n) {
ok2[j]=1;
if (j==inte[i].se) {
break;
}
}
}
}
if (accumulate(all(ok1),0)==n && accumulate(all(ok2),0)==n) {
for (int i=0; i<m; i++) {
if (msk&(1<<i)) {
cout << 1;
}
else {
cout << 0;
}
}
cout << '\n';
return 0;
}
}
cout << "impossible\n";
/*vi ord(m);
iota(all(ord),0);
sort(all(ord),[&](int a, int b){return (inte[a].fi<=inte[a].se?inte[a].fi:inte[a].se-n)<(inte[b].fi<=inte[b].se?inte[b].fi:inte[b].se-n);});
vector<vector<vi>> dp(m,vector<vi>(n+1,vi(n+1,1e9)));
dp[0][inte[ord[0]].fi+1][0]=n-1;
for (int i=0; i<m; i++) {
for (int j=0; j<n; j++) {
for (int k=0; k<n; k++) {
if (dp[i][j][k]==1e9) {
continue;
}
if (j>=inte[ord[0]].se && inte[ord[0]].fi<=inte[ord[0]].se) {
}
}
}
}*/
return 0;
}
# | 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... |