Submission #18851

#TimeUsernameProblemLanguageResultExecution timeMemory
18851pichulia컬러볼 (KOI15_ball)C++98
25 / 25
130 ms5000 KiB
#include<stdio.h>
#include<algorithm>
using namespace std;
typedef pair<int, int> pii;
typedef pair<pii, int> piii;
int n, m = 2000;
piii a[200009];
int s[3000];
int b[200009];
int r[200009];
int main() {
	int i, j, k;
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		scanf("%d %d",&a[i].first.second,&a[i].first.first);
		s[a[i].first.first] += a[i].first.first;
		a[i].second = i;
	}
	for(i=1; i<=m; i++)
		s[i] += s[i-1];
	sort(a,a+n);
	for(i=0; i<n; )
	{
		for(j=i+1;j<n;j++)
			if(a[i].first.first != a[j].first.first)
				break;
		for(k=i;k<j;k++)
		{
			r[a[k].second] = s[a[k].first.first - 1] - b[a[k].first.second];
		}
		for(k=i;k<j;k++)
			b[a[k].first.second] += a[k].first.first;
		i=j;
	}
	for(i=0;i<n;i++)
		printf("%d\n",r[i]);
}
#Verdict Execution timeMemoryGrader output
Fetching results...