C++
#include <cstdio>
#include <algorithm>
using namespace std;
struct Info{
int C;
int S;
int t;
bool operator < (const Info& info) const{
return S<info.S;
}
};
int N;
int C_size[200010];
int result[200010];
Info info[200010];
int main()
{
scanf("%d",&N);
for(int i=1;i<=N;i++){
scanf("%d %d",&info[i].C,&info[i].S);
info[i].t=i;
}
sort(info+1,info+N+1);
int t_size=0;
for(int i=1;i<=N;){
int j;
for(j=i;j<=N;j++){
if(info[i].S!=info[j].S){
break;
}
result[info[j].t]=t_size-C_size[info[j].C];
}
for(; i<j; i++)
{
t_size+=info[i].S;
C_size[info[i].C]+=info[i].S;
}
}
for(int i=1;i<=N;i++){
printf("%d\n",result[i]);
}
return 0;
}
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
공지 | 안내사항 | 관리자 | 2019.12.21 | 165 |
15 | 14430 | 관리자 | 2019.12.21 | 6 |
14 | 1182 | 관리자 | 2019.12.21 | 8 |
13 | 11660 | 관리자 | 2020.04.11 | 46 |
12 | 1149 | 관리자 | 2019.12.21 | 8 |
11 | 10999 | 관리자 | 2020.04.11 | 47 |
10 | 10937 | 관리자 | 2020.04.11 | 41 |
9 | 10919 | 관리자 | 2020.04.11 | 42 |
» | 10800 | 관리자 | 2019.12.21 | 8 |
7 | 10799 | 관리자 | 2019.12.21 | 9 |
6 | 10534 | 관리자 | 2020.04.11 | 44 |
5 | 10164 | 관리자 | 2019.12.21 | 6 |
4 | 10159 | 관리자 | 2019.12.21 | 6 |
3 | 10157 | 관리자 | 2019.12.21 | 8 |
2 | 10070 | 관리자 | 2020.04.11 | 44 |
1 | 1005 | 관리자 | 2019.12.21 | 8 |