제출 #73962

#제출 시각아이디문제언어결과실행 시간메모리
73962KLPPPalembang Bridges (APIO15_bridge)C++14
31 / 100
2066 ms4320 KiB
#include<iostream> #include<vector> #include<algorithm> using namespace std; typedef long long int lld; #define INF 1000000000000000 lld dist(lld x, lld y){ if(y>x)return y-x; return x-y; } int main(){ int k,n; cin>>k>>n; int arr[n][4]; for(int i=0;i<n;i++){ char a,b; cin>>a>>arr[i][1]>>b>>arr[i][3]; arr[i][0]=a; arr[i][2]=b; } if(k==1){ lld ans=0; vector<lld> v; for(int i=0;i<n;i++){ if(arr[i][0]==arr[i][2])ans+=dist(arr[i][1],arr[i][3]); else { v.push_back(arr[i][1]); v.push_back(arr[i][3]); } }//cout<<ans<<endl; sort(v.begin(),v.end()); for(int i=0;i<v.size();i++){ ans+=dist(v[i],v[v.size()/2-1]); //cout<<v[i]<<" "<<v[v.size()/2-1]<<" "<<dist(v[i],v[v.size()/2-1])<<endl; }cout<<ans+v.size()/2<<endl; return 0; } lld ans=INF; for(int i=0;i<2*n;i++){ for(int j=0;j<2*n;j++){ lld pos1=arr[i/2][2*(i%2)+1]; lld pos2=arr[j/2][2*(j%2)+1]; lld can=0; for(int k=0;k<n;k++){ if(arr[k][0]==arr[k][2])can+=dist(arr[k][1],arr[k][3]); else{ can+=min(dist(arr[k][1],pos1)+dist(arr[k][3],pos1)+1,dist(arr[k][1],pos2)+dist(arr[k][3],pos2)+1); } }//cout<<can<<endl; ans=min(ans,can); } }cout<<ans<<endl; return 0; }

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

bridge.cpp: In function 'int main()':
bridge.cpp:32:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i=0;i<v.size();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...