#include <bits/stdc++.h> using namespace std; int n,i,j,d,cur; char s[1000100],r[100100],o[7]; bool check(int n, int d) { return (d>=3*n && d<=6*n); } int main() { for (i=122; i>96; i--) { d=0; for (cur=i; cur>0; cur/=2) d+=(cur&1); o[d]=i; } scanf("%d",&n); scanf("%s",s); for (d=i=0; i<8*n; i++) d+=s[i]-'0'; if (!check(n,d)) { puts("NIE"); return 0; } for (i=1; i<=n; i++) for (j=3; j<7; j++) if (check(n-i,d-j)) { r[i-1]=o[j]; d-=j; break; } puts(r); return 0; }
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 | #include <bits/stdc++.h> using namespace std; int n,i,j,d,cur; char s[1000100],r[100100],o[7]; bool check(int n, int d) { return (d>=3*n && d<=6*n); } int main() { for (i=122; i>96; i--) { d=0; for (cur=i; cur>0; cur/=2) d+=(cur&1); o[d]=i; } scanf("%d",&n); scanf("%s",s); for (d=i=0; i<8*n; i++) d+=s[i]-'0'; if (!check(n,d)) { puts("NIE"); return 0; } for (i=1; i<=n; i++) for (j=3; j<7; j++) if (check(n-i,d-j)) { r[i-1]=o[j]; d-=j; break; } puts(r); return 0; } |