#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] << ' '; } } |