#include <bits/stdc++.h> using namespace std; //vector <long long> v[1000000][2]; priority_queue <long long> q1, q2; char s[1000000]; int main() { long long int a, b, c, w, i, j, k, n, q, t; scanf("%lld%s", &n, s); a=0; for(i=0; i<n*8; i++) { if(s[i]=='1')a++; } if(a<n*3 || a>n*6)printf("NIE\n"); else { a-=n*3; for(i=0; i<n; i++) { if(a==0)printf("a"); if(a==1)printf("c"); if(a==2)printf("g"); if(a>2)printf("o"); a=max(a-a, a-3); } printf("\n"); } /* scanf("%lld", &t); for(q=0; q<t; q++) { while(q1.size())q1.pop(); while(q2.size())q2.pop(); scanf("%lld%s", &n, s); i=0; a=0; while(s[i]=='0') { i++; a++; } // printf("%lld\n", a); q1.push(a); a=0; for(i=i; i<n; i++) { if(s[i]=='1') { // printf("%lld\n", a); q2.push(a); a=0; } else a++; } // printf("%lld\n", a); q1.push(a); w=n; i=0; while(true) { c=0; if(q2.size()) { a=q2.top(); if(a-i*2>0) { q2.pop(); w--; q1.push((a-1-i)); c=1; } } if(c==0 && q1.size()) { a=q1.top(); if(a-i>0) { q1.pop(); w-=a-i; c=1; } } if(c==0)break; i++; } printf("%lld\n", w); } */ 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 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 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 | #include <bits/stdc++.h> using namespace std; //vector <long long> v[1000000][2]; priority_queue <long long> q1, q2; char s[1000000]; int main() { long long int a, b, c, w, i, j, k, n, q, t; scanf("%lld%s", &n, s); a=0; for(i=0; i<n*8; i++) { if(s[i]=='1')a++; } if(a<n*3 || a>n*6)printf("NIE\n"); else { a-=n*3; for(i=0; i<n; i++) { if(a==0)printf("a"); if(a==1)printf("c"); if(a==2)printf("g"); if(a>2)printf("o"); a=max(a-a, a-3); } printf("\n"); } /* scanf("%lld", &t); for(q=0; q<t; q++) { while(q1.size())q1.pop(); while(q2.size())q2.pop(); scanf("%lld%s", &n, s); i=0; a=0; while(s[i]=='0') { i++; a++; } // printf("%lld\n", a); q1.push(a); a=0; for(i=i; i<n; i++) { if(s[i]=='1') { // printf("%lld\n", a); q2.push(a); a=0; } else a++; } // printf("%lld\n", a); q1.push(a); w=n; i=0; while(true) { c=0; if(q2.size()) { a=q2.top(); if(a-i*2>0) { q2.pop(); w--; q1.push((a-1-i)); c=1; } } if(c==0 && q1.size()) { a=q1.top(); if(a-i>0) { q1.pop(); w-=a-i; c=1; } } if(c==0)break; i++; } printf("%lld\n", w); } */ return(0); } |