#include <iostream>
#include <string>
using namespace std;
struct _znaczki{
int miasto;
int ilosc = 0;
};
int main(){
int n;
cin >> n;
_znaczki *znaczki = NULL;
znaczki = (_znaczki*) malloc(n * sizeof(_znaczki));
for(int i = 0; i < n; i++){
int znaczek;
cin >> znaczek;
int index = 0;
while(znaczki[index].ilosc != 0){
if(znaczki[index].miasto == znaczek){
znaczki[index].ilosc++;
break;
}
index++;
}
if(znaczki[index].ilosc == 0)
znaczki[index] = {znaczek, 1};
}
string wyjscie = to_string(n);
bool statement = false;
for(int i = 2; i <= n; i++){
int ilosc = 0, index = 0;
while(znaczki[index].ilosc != 0){
ilosc += (znaczki[index++].ilosc / i) * i;
}
if(statement == true){
wyjscie += " 0";
continue;
}
if(ilosc == 0){
wyjscie += " 0";
statement = true;
continue;
}
wyjscie += ' ';
wyjscie += to_string(ilosc);
}
cout << wyjscie;
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 | #include <iostream> #include <string> using namespace std; struct _znaczki{ int miasto; int ilosc = 0; }; int main(){ int n; cin >> n; _znaczki *znaczki = NULL; znaczki = (_znaczki*) malloc(n * sizeof(_znaczki)); for(int i = 0; i < n; i++){ int znaczek; cin >> znaczek; int index = 0; while(znaczki[index].ilosc != 0){ if(znaczki[index].miasto == znaczek){ znaczki[index].ilosc++; break; } index++; } if(znaczki[index].ilosc == 0) znaczki[index] = {znaczek, 1}; } string wyjscie = to_string(n); bool statement = false; for(int i = 2; i <= n; i++){ int ilosc = 0, index = 0; while(znaczki[index].ilosc != 0){ ilosc += (znaczki[index++].ilosc / i) * i; } if(statement == true){ wyjscie += " 0"; continue; } if(ilosc == 0){ wyjscie += " 0"; statement = true; continue; } wyjscie += ' '; wyjscie += to_string(ilosc); } cout << wyjscie; return 0; } |
English