/*#ifdef _MSC_VER
#ifndef __GNUC__
#pragma warning(disable: 4996)
#endif
#define main main0
#endif*/
#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef unsigned int uint;
int main() {
std::ios_base::sync_with_stdio(false);
std::cin.tie(NULL);
int n, k;
cin >> n;
if(n == 1) {
cout << n << endl;
return 0;
}
vector<int> znaczki(n);
vector<int> liczba(n);
vector<int>::iterator it = znaczki.begin(), it_end = it;
for(; it != znaczki.end(); ++it)
cin >> *it;
sort(znaczki.begin(), znaczki.end(), greater<int>());
k = znaczki[0];
znaczki[0] = 1;
for(it = znaczki.begin() + 1; it != znaczki.end(); ++it) {
if(*it == k)
++*it_end;
else {
k = *it;
*++it_end = 1;
}
}
sort(znaczki.begin(), ++it_end, greater<int>());
vector<int>::iterator it3 = znaczki.begin();
vector<int>::iterator it4 = liczba.begin();
// *it4 = 1;
k = znaczki[0];
// znaczki[0] = 1;
for(it = znaczki.begin(); it != it_end; ++it) {
if(*it == k)
++*it4;
else {
k = *it;
*++it3 = *it;
++it4;
*it4 = 1;
}
}
cout << n;
for(int i = 2, znaczkow; i <= n; ++i) {
znaczkow = 0;
for(int j = 0; liczba[j] > 0; ++j)
znaczkow += (znaczki[j] / i * i) * liczba[j];
cout << ' ' << znaczkow;
}
cout << endl;
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 | /*#ifdef _MSC_VER #ifndef __GNUC__ #pragma warning(disable: 4996) #endif #define main main0 #endif*/ #include <algorithm> #include <iostream> #include <vector> using namespace std; typedef long long ll; typedef unsigned long long ull; typedef unsigned int uint; int main() { std::ios_base::sync_with_stdio(false); std::cin.tie(NULL); int n, k; cin >> n; if(n == 1) { cout << n << endl; return 0; } vector<int> znaczki(n); vector<int> liczba(n); vector<int>::iterator it = znaczki.begin(), it_end = it; for(; it != znaczki.end(); ++it) cin >> *it; sort(znaczki.begin(), znaczki.end(), greater<int>()); k = znaczki[0]; znaczki[0] = 1; for(it = znaczki.begin() + 1; it != znaczki.end(); ++it) { if(*it == k) ++*it_end; else { k = *it; *++it_end = 1; } } sort(znaczki.begin(), ++it_end, greater<int>()); vector<int>::iterator it3 = znaczki.begin(); vector<int>::iterator it4 = liczba.begin(); // *it4 = 1; k = znaczki[0]; // znaczki[0] = 1; for(it = znaczki.begin(); it != it_end; ++it) { if(*it == k) ++*it4; else { k = *it; *++it3 = *it; ++it4; *it4 = 1; } } cout << n; for(int i = 2, znaczkow; i <= n; ++i) { znaczkow = 0; for(int j = 0; liczba[j] > 0; ++j) znaczkow += (znaczki[j] / i * i) * liczba[j]; cout << ' ' << znaczkow; } cout << endl; return 0; } |
English