Submission #1269166

#TimeUsernameProblemLanguageResultExecution timeMemory
1269166muramasaPalembang Bridges (APIO15_bridge)C++20
22 / 100
29 ms1480 KiB
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define fr(i,a,b,c) for(int i = a;i<b;i+=c)
#define fre(i,a,b,c) for(int i = a;i>=b;i-=c)
#define MAXN 1e9 + 5
#define IINF 2000000005
#define LINF 100000000000000005
#define MOD 1000000007
#define str string
#define endl '\n'
using pii = pair<int,int>;
using pll = pair<ll,ll>;
using piqr = priority_queue<ll,vector<ll>,greater<ll>>;
using piiqr = priority_queue<pii,vector<pii>,greater<pii>>; 
using piq = priority_queue<int>;
using tiii = tuple<int,int,int>;
using tcii = tuple<char,int,int>;
int dx[4] =  {1,-1,0,0};
int dy[4] = {0,0,1,-1};


int main(){
    ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
    // freopen("input.txt","r",stdin);
    // freopen("output.txt","w",stdout);
    int k,n;cin >> k >> n;
    ll ps = 0,cnt = 0, cnt2 = 0;
    ll ans = LINF;
    ll sum = 0,ls = 0,rs = 0;
    vector<int> p;
    fr(i,0,n,1){
        char a,b;
        ll x,y;
        cin >> a >> x >> b >> y;
        if(a == b)ps += llabs(x - y);
        else{
            p.push_back(x);
            p.push_back(y);
            rs += x;
            rs += y;
            cnt+=2;
        }
    }
    sort(p.begin(),p.end());
    int l = 0;
    // cout  << l << ' ' << r << endl;
    for(auto u : p){
        ans = min(ans,u*1LL * cnt2 - ls + rs - 1LL * u*cnt + (cnt+cnt2)/2);
        ls += u;
        rs -= u;
        // cout << u <<  ' ' << l << ' ' << r <<' ' << cnt << ' ' << cnt2 << endl;
        cnt2++;
        cnt--;
    }
    if(ans == LINF)ans = 0;
    cout << ans + ps;
}
#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...