#include<bits/stdc++.h>
using namespace std;
vector<string> wszystkie;
pair<int, int> zap[1009];
int wyn[100];
void wytworz(string s, int n) {
if(s.size()==n) {
wszystkie.push_back(s);
return;
}
wytworz(s+'0', n);
wytworz(s+'1', n);
}
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int n, m, a, b;
cin >> n >> m;
wytworz("", n);
for(int i=1; i<=m; i++) {
cin >> a >> b;
zap[i]={a-1, b-1};
}
string s;
int ile, pierwsza, ostatnia;
for(auto maska:wszystkie) {
s=maska;
for(int i=1; i<=m; i++) {
a=zap[i].first;
b=zap[i].second;
if(s[a]=='1' && s[b]=='0') {
s[a]='0';
s[b]='1';
}
}
ile=0;
pierwsza=100000;
ostatnia=-1;
for(int i=0; i<s.size(); i++) {
if(s[i]=='1') {
ile++;
pierwsza=min(pierwsza, i);
ostatnia=i;
}
}
if(ile!=0) {
if(ostatnia-pierwsza+1 == ile) {
wyn[ile]++;
wyn[ile]%=2;
}
}
}
for(int i=1; i<=n; i++) {
cout << wyn[i] << ' ';
}
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | #include<bits/stdc++.h> using namespace std; vector<string> wszystkie; pair<int, int> zap[1009]; int wyn[100]; void wytworz(string s, int n) { if(s.size()==n) { wszystkie.push_back(s); return; } wytworz(s+'0', n); wytworz(s+'1', n); } int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n, m, a, b; cin >> n >> m; wytworz("", n); for(int i=1; i<=m; i++) { cin >> a >> b; zap[i]={a-1, b-1}; } string s; int ile, pierwsza, ostatnia; for(auto maska:wszystkie) { s=maska; for(int i=1; i<=m; i++) { a=zap[i].first; b=zap[i].second; if(s[a]=='1' && s[b]=='0') { s[a]='0'; s[b]='1'; } } ile=0; pierwsza=100000; ostatnia=-1; for(int i=0; i<s.size(); i++) { if(s[i]=='1') { ile++; pierwsza=min(pierwsza, i); ostatnia=i; } } if(ile!=0) { if(ostatnia-pierwsza+1 == ile) { wyn[ile]++; wyn[ile]%=2; } } } for(int i=1; i<=n; i++) { cout << wyn[i] << ' '; } } |
English