/*#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; } |