제출 #243303

#제출 시각아이디문제언어결과실행 시간메모리
243303Leonardo_PaesPalembang Bridges (APIO15_bridge)C++17
31 / 100
2089 ms6248 KiB
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll inf = 1e18+10;
int main(){
    ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
    int k, n;
    cin >> k >> n;
    ll ans1 = 0, ans2 = 0;
    vector<ll> a, b, c;
    for(int i=1; i<=n; i++){
        int s, t;
        char p, q;
        cin >> p >> s >> q >> t;
        if(p == q) ans1 += abs(s - t);
        else{
            if(p == 'B') swap(s, t);
            a.push_back(s);
            b.push_back(t);
        }
    }
    for(auto x : a) c.push_back(x);
    for(auto x : b) c.push_back(x);
    if(k == 1){
        for(auto x : a) c.push_back(x);
        for(auto x : b) c.push_back(x);
        sort(c.begin(), c.end());
        if(!c.empty()){
            ll opt = c[(int)c.size()/2];
            for(auto x : a) ans2 += abs(opt - x);
            for(auto x : b) ans2 += abs(opt - x);
        }
    }
    else if(!c.empty()){
        ans2 = inf;
        for(int i=0; i<c.size(); i++){
            for(int j=i+1; j<c.size(); j++){
                ll tot = 0LL;
                for(int k=0; k<a.size(); k++){
                    tot += min(abs(a[k] - c[i]) + abs(b[k] - c[i]),
                               abs(a[k] - c[j]) + abs(b[k] - c[j]));
                }
                ans2 = min(ans2, tot);
            }
        }
    }
    cout << ans1 + ans2 + (int)a.size() << "\n";
    return 0;
}

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

bridge.cpp: In function 'int main()':
bridge.cpp:36:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for(int i=0; i<c.size(); i++){
                      ~^~~~~~~~~
bridge.cpp:37:29: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
             for(int j=i+1; j<c.size(); j++){
                            ~^~~~~~~~~
bridge.cpp:39:31: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
                 for(int k=0; k<a.size(); k++){
                              ~^~~~~~~~~
#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...