#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int MAXN = 1e5;
const int MAXH = 1e5;
ll H[MAXN], qty[MAXN];
ll h[MAXH+1];
int main() {
ios_base::sync_with_stdio(false); cin.tie(NULL);
int n; cin >> n;
for (int i=0; i<n; i++) {
cin >> H[i] >> qty[i];
for (int j=H[i]-qty[i]+1; j<=H[i]; j++) {
h[j]++;
}
}
// decrescente
set<pair<ll, int>> freq; freq.insert({h[1], 1});
for (int i=2; i<=MAXH; i++) {
while (h[i] > freq.begin()->first) {
h[i]--;
pair<ll, int> tmp = *freq.begin();
tmp.first++;
freq.erase(freq.begin());
freq.insert(tmp);
}
freq.insert({h[i], i});
}
ll ans = 0;
for (auto [f, i] : freq) {
// if (f == 0) continue;
// cout << i << " com " << f << endl;
ans += f*(f-1)/2;
}
cout << ans << '\n';
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |