제출 #27604

#제출 시각아이디문제언어결과실행 시간메모리
27604TAMREFPalembang Bridges (APIO15_bridge)C++11
22 / 100
86 ms2800 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; int Q[100005], R[100005], K, N; ll ans, ans2; inline ll pro(int x){ ll u=0; for(int i=0;i<N;i++){ u+=abs((ll)x-Q[i])+abs((ll)x-R[i]); } return u; } void solve1(){ int p=0,q,r,s=1e9; while(p<s){ q=p+(s-p)/3; r=s-(s-p)/3; if(pro(q)<=pro(r)) s=r-1; else p=q+1; } ans+=pro(p); } void solve2(){ ll C[205]; for(int i=0;i<N;i++) C[i<<1]=Q[i],C[i<<1|1]=R[i]; sort(C,C+2*N); int x=unique(C,C+2*N)-C; ll add=1e18,tmp; for(int i=0;i<x;i++){ for(int j=i;j<x;j++){ tmp=0; for(int k=0;k<N;k++){ tmp+=min(abs(Q[k]-C[i])+abs(R[k]-C[i]), abs(Q[k]-C[j])+abs(R[k]-C[j])); } add=min(add,tmp); } } ans+=add; } int main(){ scanf("%d %d",&K,&N); char u,v; for(int i=0;i<N;i++){ getchar(); u=getchar(); scanf(" %d ",&Q[i]); v=getchar(); scanf(" %d",&R[i]); if(u==v){ ans+=abs(Q[i]-R[i]); --i;--N; }else{ ++ans; if(u=='B') swap(Q[i],R[i]); } } ans2=ans; if(K==1) solve1(); else solve2(); printf("%lld\n",ans); }

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

bridge.cpp: In function 'int main()':
bridge.cpp:42:25: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d %d",&K,&N);
                         ^
bridge.cpp:47:28: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf(" %d ",&Q[i]);
                            ^
bridge.cpp:49:27: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf(" %d",&R[i]);
                           ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...