#include <bits/stdc++.h>
using namespace std;
int n;
int ones = 0;
int zeros = 0;
char ones_to_letter[] = {'#', '#', '#', 'a', 'c', 'g', 'o'};
// rozwiązanie istnieje gdy liczbę jedynek da się zapisać jako sumę 3,4,5,6 i tych elementów ma być dokładnie n
//'a' - 3 jedynki, 'c' - 4 jedynki, 'g' - 5 jedynek, 'o' - 6 jedynek, na 7 jedynek nic nie ma
// X = 3*n + coś (c*1 + g*)
// Zacznijmy od usunięcia 3*n od X i zobaczmy co zostało
// Tych elementów już może być mniej niż n - możemy zachłannie zdejmować
void sol(){
cin >> n;
string input;
cin >> input;
for(int i = 0; i < 8*n; i++){
ones += input[i] == '1' ? 1 : 0;
}
if(ones < 3*n || ones > 6*n){
cout << "NIE" << endl;
return;
}
ones -= 3*n;
vector<int>letters(n, 3);
int i = 0;
while(ones > 3){
ones -= 3;
letters[i] += 3;
i++;
}
letters[i] += ones;
for(int i = 0; i < n; i++){
cout << ones_to_letter[letters[i]];
}
cout << endl;
}
int main(){
ios_base::sync_with_stdio(0);
cin.tie(NULL);
cout.tie(NULL);
sol();
}
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 | #include <bits/stdc++.h> using namespace std; int n; int ones = 0; int zeros = 0; char ones_to_letter[] = {'#', '#', '#', 'a', 'c', 'g', 'o'}; // rozwiązanie istnieje gdy liczbę jedynek da się zapisać jako sumę 3,4,5,6 i tych elementów ma być dokładnie n //'a' - 3 jedynki, 'c' - 4 jedynki, 'g' - 5 jedynek, 'o' - 6 jedynek, na 7 jedynek nic nie ma // X = 3*n + coś (c*1 + g*) // Zacznijmy od usunięcia 3*n od X i zobaczmy co zostało // Tych elementów już może być mniej niż n - możemy zachłannie zdejmować void sol(){ cin >> n; string input; cin >> input; for(int i = 0; i < 8*n; i++){ ones += input[i] == '1' ? 1 : 0; } if(ones < 3*n || ones > 6*n){ cout << "NIE" << endl; return; } ones -= 3*n; vector<int>letters(n, 3); int i = 0; while(ones > 3){ ones -= 3; letters[i] += 3; i++; } letters[i] += ones; for(int i = 0; i < n; i++){ cout << ones_to_letter[letters[i]]; } cout << endl; } int main(){ ios_base::sync_with_stdio(0); cin.tie(NULL); cout.tie(NULL); sol(); } |
English