제출 #1042418

#제출 시각아이디문제언어결과실행 시간메모리
1042418Math4Life2020Palembang Bridges (APIO15_bridge)C++17
63 / 100
2065 ms10328 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; using pii = pair<ll,ll>; ll calc(vector<ll> v) { vector<ll> v2=v; sort(v2.begin(),v2.end()); ll val = 0; for (ll x: v2) { val += abs(x-v2[v2.size()/2]); } return val; } int main() { ios_base::sync_with_stdio(false); cin.tie(0); ll K,N; cin >> K >> N; vector<pii> v; ll ans = 0; for (ll i=0;i<N;i++) { string p,q; ll s,t; cin >> p >> s >> q >> t; if (p==q) { ans += abs(s-t); } else { ans++; v.push_back({min(s,t),max(s,t)}); } } vector<ll> v2; for (pii p0: v) { v2.push_back(p0.first); v2.push_back(p0.second); } sort(v2.begin(),v2.end()); if (K==1) { cout << ans+calc(v2); } else { ll ans1[v.size()+1]; ll ans2[v.size()+1]; vector<array<ll,3>> VTOT; for (ll i=0;i<v.size();i++) { VTOT.push_back({v[i].first+v[i].second,v[i].first,v[i].second}); } sort(VTOT.begin(),VTOT.end()); ans1[0]=0; ans2[v.size()]=0; vector<ll> vf; vector<ll> vb; for (ll T=0;T<VTOT.size();T++) { vf.push_back(VTOT[T][1]); vf.push_back(VTOT[T][2]); ans1[T+1]=calc(vf); vb.push_back(VTOT[v.size()-1-T][1]); vb.push_back(VTOT[v.size()-1-T][2]); ans2[v.size()-1-T]=calc(vb); } ll atotM = 1e18; for (ll i=0;i<=v.size();i++) { atotM = min(atotM,ans1[i]+ans2[i]); } cout << ans+atotM; } }

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

bridge.cpp: In function 'int main()':
bridge.cpp:41:16: warning: comparison of integer expressions of different signedness: 'll' {aka 'long long int'} and 'std::vector<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   41 |   for (ll i=0;i<v.size();i++) {
      |               ~^~~~~~~~~
bridge.cpp:47:16: warning: comparison of integer expressions of different signedness: 'll' {aka 'long long int'} and 'std::vector<std::array<long long int, 3> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   47 |   for (ll T=0;T<VTOT.size();T++) {
      |               ~^~~~~~~~~~~~
bridge.cpp:56:16: warning: comparison of integer expressions of different signedness: 'll' {aka 'long long int'} and 'std::vector<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   56 |   for (ll 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...