제출 #118438

#제출 시각아이디문제언어결과실행 시간메모리
118438str0ct화살표 그리기 (KOI18_arrowH)C++14
100 / 100
41 ms4984 KiB
#include<bits/stdc++.h>
using namespace std;
long long color[101010],opt[101010],sum;
typedef struct{
    long long ipt,w;
}nd;
bool operator<(nd a,nd b){
    return a.w<b.w;
}
nd arr[101010];
int main(){
    int N;
    scanf("%d",&N);
    for(int i=0;i<N;i++)
        scanf("%lld%lld",&arr[i].w,&arr[i].ipt);
    sort(arr,arr+N);
    memset(color,-1,sizeof(color));
    for(int i=0;i<N;i++){
        if(color[arr[i].ipt]!=-1)
            opt[i]=arr[i].w-color[arr[i].ipt];
        color[arr[i].ipt]=arr[i].w;
    }
    memset(color,-1,sizeof(color));
    for(int i=N-1;i>=0;i--){
        if(color[arr[i].ipt]!=-1&&(opt[i]==0||opt[i]>color[arr[i].ipt]-arr[i].w))
            opt[i]=color[arr[i].ipt]-arr[i].w;
        color[arr[i].ipt]=arr[i].w;
    }
    for(int i=0;i<N;i++)
        sum+=opt[i];
    printf("%lld",sum);
}

컴파일 시 표준 에러 (stderr) 메시지

arrow.cpp: In function 'int main()':
arrow.cpp:13:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d",&N);
     ~~~~~^~~~~~~~~
arrow.cpp:15:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%lld%lld",&arr[i].w,&arr[i].ipt);
         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...