Submission #243294

#TimeUsernameProblemLanguageResultExecution timeMemory
243294Leonardo_PaesPalembang Bridges (APIO15_bridge)C++17
0 / 100
5 ms384 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long
int32_t main(){
    ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
    int k, n;
    cin >> k >> n;
    int ans1 = 0, ans2 = 1000000000000000000;
    vector<int> a, b;
    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);
        }
    }
    sort(a.begin(), a.end());
    sort(b.begin(), b.end());
    for(int i=0; i<a.size(); i++){
        int tot = 0;
        for(int j=0; j<i; j++) tot += a[i] - a[j];
        for(int j=i+1; j<a.size(); j++) tot += a[j] - a[i];
        for(int j=0; j<b.size(); j++) tot += abs(a[i] - b[j]);
        ans2 = min(ans2, tot);
    }
    for(int i=0; i<b.size(); i++){
        int tot = 0;
        for(int j=0; j<i; j++) tot += b[i] - b[j];
        for(int j=i+1; j<b.size(); j++) tot += b[j] - b[i];
        for(int j=0; j<a.size(); j++) tot += abs(a[i] - b[j]);
        ans2 = min(ans2, tot);
    }
    cout << ans1 + ans2 + (int)a.size() << "\n";
    return 0;
}

Compilation message (stderr)

bridge.cpp: In function 'int32_t main()':
bridge.cpp:23:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i=0; i<a.size(); i++){
                  ~^~~~~~~~~
bridge.cpp:26:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for(int j=i+1; j<a.size(); j++) tot += a[j] - a[i];
                        ~^~~~~~~~~
bridge.cpp:27:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for(int j=0; j<b.size(); j++) tot += abs(a[i] - b[j]);
                      ~^~~~~~~~~
bridge.cpp:30:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i=0; i<b.size(); i++){
                  ~^~~~~~~~~
bridge.cpp:33:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for(int j=i+1; j<b.size(); j++) tot += b[j] - b[i];
                        ~^~~~~~~~~
bridge.cpp:34:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for(int j=0; j<a.size(); j++) tot += abs(a[i] - b[j]);
                      ~^~~~~~~~~
#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...