제출 #1147572

#제출 시각아이디문제언어결과실행 시간메모리
1147572LudisseyPalembang Bridges (APIO15_bridge)C++17
0 / 100
1 ms328 KiB
#include <bits/stdc++.h>
#define int long long
#define sz(a) (int)a.size()
#define all(a) a.begin(), a.end()
#define rall(a) a.rbegin(), a.rend()

using namespace std;

signed main() {
    ios_base::sync_with_stdio(false); cin.tie(nullptr);
    int n,k; cin >> k >> n;
    int sum=0;
    vector<pair<int,pair<int,int>>> a;
    for (int i = 0; i < n; i++){
        char p,q; int s,t; cin >> p >> s >> q >> t;
        if(s>t) swap(s,t);
        if(p!=q) {
            a.push_back({s+t,{s*2,t*2}});
            sum++;
        }
        sum+=abs(s-t);
    }
    n=sz(a);
    sort(all(a));
    if(n==0){
        cout << sum << "\n";
        return 0;
    }
    if(k==1){
        int med1=(a[n/2].first+a[(n-1)/2].first)/2;
        int med2=(a[n/2].first+a[(n-1)/2].first+1)/2;
        if(med1%2) med1++;
        else if(med2%2) med2--;
        int sm1=0;
        int sm2=0;
        for (int i = 0; i < n; i++)
        {
            sm1+=max(0LL,max(a[i].second.first-med1,med1-a[i].second.second));
            sm2+=max(0LL,max(a[i].second.first-med2,med2-a[i].second.second));
        }
        sum+=max(sm1,sm2);
    }
    cout << sum << "\n";
    return 0;
}
#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...