#include <iostream> #include <stdint.h> #include <algorithm> #include <utility> #include <functional> #include <vector> using namespace std; int main(){ ios::sync_with_stdio(false); cin.tie(NULL); int n; cin >> n; vector<pair<uint64_t, uint64_t> > a(n); vector<pair<uint64_t, uint64_t> > b(n); uint64_t wynik=0; for(int i=0; i<n; i++){ cin >> a[i].first >> a[i].second; b[i].first=a[i].second; b[i].second = i; } sort(a.begin(), a.end() ); sort(b.begin(), b.end() ); for(int i=0; i<n; i++){ //cout << b[i].first << " " << b[i].second<< '\n'; } //mamy pola posortowane względem tempa wzrostu rosnąco //int fl; wynik=a[n-1].second; for(int k=1; k<=n; k++){//wypisujemy wynik w zależności od liczby dni na grzybobraniu // fl=0; if(k==1){cout << b[n-1].first << '\n';}//jeden dzien else{ for(int x=0; x<k; x++){ //cout << "a " << a[n-x-1].first << '\n'; if(x==k-1){wynik+=a[n-k].second;} else{ wynik +=a[n-x-1].first;} //cout << "wynik : " << wynik << '\n'; } cout << wynik << '\n'; for(int p=0; p<k; p++){ if(a[n-k+p-1].first < b[p].first){ //cout << "b wieksze" << '\n'; for(int q=0; q<n-k+p; q++){ //if( } } } } } 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 | #include <iostream> #include <stdint.h> #include <algorithm> #include <utility> #include <functional> #include <vector> using namespace std; int main(){ ios::sync_with_stdio(false); cin.tie(NULL); int n; cin >> n; vector<pair<uint64_t, uint64_t> > a(n); vector<pair<uint64_t, uint64_t> > b(n); uint64_t wynik=0; for(int i=0; i<n; i++){ cin >> a[i].first >> a[i].second; b[i].first=a[i].second; b[i].second = i; } sort(a.begin(), a.end() ); sort(b.begin(), b.end() ); for(int i=0; i<n; i++){ //cout << b[i].first << " " << b[i].second<< '\n'; } //mamy pola posortowane względem tempa wzrostu rosnąco //int fl; wynik=a[n-1].second; for(int k=1; k<=n; k++){//wypisujemy wynik w zależności od liczby dni na grzybobraniu // fl=0; if(k==1){cout << b[n-1].first << '\n';}//jeden dzien else{ for(int x=0; x<k; x++){ //cout << "a " << a[n-x-1].first << '\n'; if(x==k-1){wynik+=a[n-k].second;} else{ wynik +=a[n-x-1].first;} //cout << "wynik : " << wynik << '\n'; } cout << wynik << '\n'; for(int p=0; p<k; p++){ if(a[n-k+p-1].first < b[p].first){ //cout << "b wieksze" << '\n'; for(int q=0; q<n-k+p; q++){ //if( } } } } } return 0; } |