#include <cstdio>
#include <algorithm>
using namespace std;
typedef pair<long long, long long> pll;
const int MX=1000100;
int n,i,j,k,c;
long long r;
pll a[MX];
bool u[MX];
bool cmp(const pll& x, const pll& y) {
return x>y;
}
int main() {
scanf("%d",&n);
for (i=0; i<n; i++) {
scanf("%lld%lld",&a[i].first,&a[i].second);
a[i].second-=a[i].first;
}
sort(a,a+n,cmp);
for (i=0; i<n; i++) {
for (k=-1, j=0; j<n; j++) {
a[j].second+=a[j].first;
if (!u[j] && (k==-1 || a[j].second>a[k].second)) k=j;
}
u[k]=true;
for (r=j=c=0; c<=i; j++) if (u[j]) {
r+=a[j].second-c*a[j].first;
c++;
}
printf("%lld\n",r);
}
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 | #include <cstdio> #include <algorithm> using namespace std; typedef pair<long long, long long> pll; const int MX=1000100; int n,i,j,k,c; long long r; pll a[MX]; bool u[MX]; bool cmp(const pll& x, const pll& y) { return x>y; } int main() { scanf("%d",&n); for (i=0; i<n; i++) { scanf("%lld%lld",&a[i].first,&a[i].second); a[i].second-=a[i].first; } sort(a,a+n,cmp); for (i=0; i<n; i++) { for (k=-1, j=0; j<n; j++) { a[j].second+=a[j].first; if (!u[j] && (k==-1 || a[j].second>a[k].second)) k=j; } u[k]=true; for (r=j=c=0; c<=i; j++) if (u[j]) { r+=a[j].second-c*a[j].first; c++; } printf("%lld\n",r); } return 0; } |
English