Submission #1199938

#TimeUsernameProblemLanguageResultExecution timeMemory
1199938amanthabandPalembang Bridges (APIO15_bridge)C++20
0 / 100
1 ms528 KiB
#include <cmath>
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>

using namespace std;

using ll = long long;
ll mod = 1000000007;

ll modpow(ll a, ll b) {
    ll result = 1;
    a %= mod;
    while (b > 0) {
        if (b % 2 == 1)
            result = (result * a) % mod;
        a = (a * a) % mod;
        b /= 2;
    }
    return result;
}

int main() {
    ll k,n;
    cin>>k>>n;
    vector<ll> median;
    vector<ll> home;
    vector<ll> ofiice;
    ll sum_distance =0;
    if(k == 1){
       for (ll z = 0; z < n; z++) {
           string s;
           cin>>s;
           char p = s[0];
           ll S = 0;
           ll i = 1;
           while (isdigit(s[i])) {
               S = S * 10 + (s[i] - '0');
               i++;
           }
           char q = s[i];
           ll T = 0;
           i++;
           while (i < s.size()) {
               T = T * 10 + (s[i] - '0');
               i++;
           }
           if(p == q){
              sum_distance += llabs(S - T);
           }
           else{
              int mid = (S + T )/2;
              median.push_back(mid);
              home.push_back(S);
              ofiice.push_back(T);
           }
       }

        if (median.size() == 0) {
            cout << sum_distance << endl;
            return 0;
        }

        ll j = median.size();
        sort(median.begin(), median.end());
        ll sum = j/2;
        ll pos = 0;
        pos = median[sum];
        ll ans = sum_distance;
        for (int i = 0; i < home.size(); i++)
        {
            ans += (llabs(home[i] - pos ) + llabs(ofiice[i] - pos)) +1;
        }

        cout<<ans<<endl;
    }
    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...