Submission #1356925

#TimeUsernameProblemLanguageResultExecution timeMemory
1356925NAMINSails (IOI07_sails)C++20
5 / 100
13 ms1476 KiB
#include <bits/stdc++.h>
#define ll long long
#define endl "\n"
using namespace std;

const int mxN = 100005;

void solve(){
	int N;
	cin >> N;
	vector<pair<int,int>> event(N);//h,k
	for(int i=0;i<N;i++){
		cin >> event[i].first >> event[i].second;
	}
	sort(event.rbegin(),event.rend());
	vector<int> pref(mxN,0);
	int p=event[0].first+1;
	for(auto [h,k] : event){
		if(p<=k){
			pref[1]++;
			pref[p]--;
			k-=p-1;
			p=h+1;
		}
		if(k>0){
			int nxtp = p-k;
			pref[nxtp]++;
			pref[p]--;
			p-=k;
		}
	}
	ll ans = 0;
	for(int i=1;i<mxN;i++){
		pref[i]+=pref[i-1];
		ans+=1LL*(pref[i]-1)*pref[i]/2;
	}
	cout << ans << endl;
}

int main(){
	ios::sync_with_stdio(false);
	cin.tie(0);
	
	int t=1;
	//cin >> t;
	while(t--){
		solve();
	}
}

#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...