Submission #776158

#TimeUsernameProblemLanguageResultExecution timeMemory
776158Ahmed57Sails (IOI07_sails)C++17
5 / 100
47 ms4440 KiB
#include <bits/stdc++.h>

using namespace std;

int main(){
    int n;
    cin>>n;
    vector<int> v[100001];
    for(int i = 0;i<n;i++){
        int a,b;cin>>a>>b;
        v[a].push_back(b);
    }
    long long l = 1 , r = 100000 , ans = -1;
    while(l<=r){
        long long mid = (l+r)/2;
        multiset<int> s;
        long long global = 0 , all = 0;
        priority_queue<int> ve;
        for(int i = 5;i>=1;i--){
            for(auto j:v[i]){
                ve.push(j);
            }
            while(ve.size()&&s.size()<mid){
                s.insert(ve.top()+global);
                ve.pop();
            }
            global++;
            long long sz = s.size();
            all+=(sz*(sz-1))/2;
            while(s.size()&&(*s.begin())<=global){
                s.erase(s.begin());
            }
        }
        if(ve.empty()&&s.empty()){
            ans = all;
            r = mid-1;
        }else{
            l = mid+1;
        }
    }
    cout<<ans<<endl;
}

Compilation message (stderr)

sails.cpp: In function 'int main()':
sails.cpp:23:38: warning: comparison of integer expressions of different signedness: 'std::multiset<int>::size_type' {aka 'long unsigned int'} and 'long long int' [-Wsign-compare]
   23 |             while(ve.size()&&s.size()<mid){
      |                              ~~~~~~~~^~~~
#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...