#include <bits/stdc++.h> using namespace std; #define MAXN 1000001 #define int long long int #define pb push_back #define a first #define b second int n; vector <pair <int,int> > kraw; pair <int,int> lines[MAXN]; void wczytaj() { scanf("%lld",&n); for(int i = 0;i < n;++i) scanf("%lld%lld",&lines[i].a,&lines[i].b); } void __count() { for(int k = 0;k < n;++k) { kraw.clear(); for(int i = 0;i < n;++i) kraw.pb(lines[i]); int wyn = 0; for(int x = k;x >= 0;--x) { int maksik = -1; for(int i = 0;i < (int)kraw.size();++i) if(maksik == -1 || kraw[maksik].a * x + kraw[maksik].b < kraw[i].a * x + kraw[i].b) maksik = i; wyn += kraw[maksik].a * x + kraw[maksik].b; swap(kraw[maksik],kraw.back()); kraw.pop_back(); } printf("%lld\n",wyn); } } #undef int int main() { #define int long long int wczytaj(); __count(); }
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 | #include <bits/stdc++.h> using namespace std; #define MAXN 1000001 #define int long long int #define pb push_back #define a first #define b second int n; vector <pair <int,int> > kraw; pair <int,int> lines[MAXN]; void wczytaj() { scanf("%lld",&n); for(int i = 0;i < n;++i) scanf("%lld%lld",&lines[i].a,&lines[i].b); } void __count() { for(int k = 0;k < n;++k) { kraw.clear(); for(int i = 0;i < n;++i) kraw.pb(lines[i]); int wyn = 0; for(int x = k;x >= 0;--x) { int maksik = -1; for(int i = 0;i < (int)kraw.size();++i) if(maksik == -1 || kraw[maksik].a * x + kraw[maksik].b < kraw[i].a * x + kraw[i].b) maksik = i; wyn += kraw[maksik].a * x + kraw[maksik].b; swap(kraw[maksik],kraw.back()); kraw.pop_back(); } printf("%lld\n",wyn); } } #undef int int main() { #define int long long int wczytaj(); __count(); } |