#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const char nn = '\n';
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
int n;
cin >> n;
vector<pair<int, int>> a(n + 1);
for (pair<int, int> &i : a) cin >> i.first >> i.second;
sort(a.begin(), a.end());
reverse(a.begin(), a.end());
int hang = a[0].first, cur = 0;
int prev = a[0].first;
vector<int> ans(10 + 1);
for (pair<int, int> &i : a) {
// cout << i.first << " " << i.second << nn;
for (int j = i.first + 1; j <= hang; j++) ans[j] = cur;
for (int j = hang + 1; j <= prev; j++) ans[j] = cur + 1;
prev = i.first;
hang = min(hang, i.first);
if (hang > i.second) {
hang -= i.second;
} else {
cur++;
int leftover = i.second - hang;
hang = i.first - leftover;
}
// cout << "dbg " << hang << " " << cur << nn;
// for (int i : ans) cout << i << " ";
// cout << nn;
}
ll total = 0;
for (int i : ans) total += i * (i - 1) / 2;
cout << total << nn;
}
# | 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... |