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