메뉴 건너뛰기

Programing

BAEKJOON

10800

관리자 2019.12.21 19:27 조회 수 : 8

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;

}

번호 제목 글쓴이 날짜 조회 수
공지 안내사항 관리자 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
위로