#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; } |
English