Submission #890424

#TimeUsernameProblemLanguageResultExecution timeMemory
890424Ghulam_JunaidSails (IOI07_sails)C++17
0 / 100
1082 ms10684 KiB
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;

const ll N = 1e5 + 10;
ll n, p[N], initial_cost;
vector<pair<ll, ll>> vec;

int main(){
    cin >> n;

    for (ll i=0; i<n; i++){
        ll h, k;
        cin >> h >> k;

        if (h == k){
            p[0]++;
            p[h]--;
        }
        else{
            vec.push_back({h, k});
        }
    }

    initial_cost = (p[0] * (p[0] - 1)) / 2;
    for (ll i=1; i<N; i++){
        p[i] += p[i - 1];
        initial_cost += (p[i] * (p[i] - 1)) / 2;
    }

    set<pair<ll, ll>> st;
    for (ll i = 0; i < N; i++)
        st.insert({p[i], -i});

    ll cost = initial_cost;
    vector<ll> places;
    for (ll i=0; i<vec.size(); i++){
        ll h = vec[i].first;
        ll k = vec[i].second;

        places.clear();
        for (ll j = 0; j < k; j++){
            places.push_back(-(*st.begin()).second);
            st.erase(st.begin());
        }
    
        for (ll j=0; j<k; j++){
            ll pos = places[j];
            cost += p[pos];
            p[pos]++;
            st.insert({p[pos], -pos});
        }
    }

    cout << cost << endl;
}

Compilation message (stderr)

sails.cpp: In function 'int main()':
sails.cpp:38:19: warning: comparison of integer expressions of different signedness: 'll' {aka 'long long int'} and 'std::vector<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   38 |     for (ll i=0; i<vec.size(); i++){
      |                  ~^~~~~~~~~~~
sails.cpp:39:12: warning: unused variable 'h' [-Wunused-variable]
   39 |         ll h = vec[i].first;
      |            ^
#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...
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...