Submission #616913

#TimeUsernameProblemLanguageResultExecution timeMemory
6169131neSails (IOI07_sails)C++14
40 / 100
1088 ms7088 KiB
#include<bits/stdc++.h>
using namespace std;

int main(){
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	int n;cin>>n;
	vector<pair<int,int>>arr(n);
	vector<long long>v(100001,0);
	for (int i = 0;i<n;++i){
		cin>>arr[i].first>>arr[i].second;
	}
	sort(arr.begin(),arr.end(),[&](auto x,auto y){
		return x.first < y.first;
	});
	long long ans = 0;
	priority_queue<pair<long long,long long>>q;
	int right = 0;
	for (int i = 0;i<n;++i){
		vector<pair<long long,long long>>temp;
		while(right < arr[i].first){
			if (arr[i].second > 0){
				temp.push_back({-1,right});
				v[right]++;
				arr[i].second--;
			}
			else{
				temp.push_back({0,right});
			}
			++right;
		}
		for (int j = 0;j<arr[i].second;++j){
			auto u = q.top();
			q.pop();
			ans+=-u.first;
			v[u.second]++;
			temp.push_back({-v[u.second],u.second});
		}
		for (auto x:temp)q.push(x);
	}
	cout<<ans<<'\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...
#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...