이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <iostream>
#include <array>
#include <algorithm>
#include <queue>
#include <map>
#define ll long long
using namespace std;
ll n, p, l, r, y, f;
vector <ll> V;
map <ll, array<ll, 2> > mp;
array<ll, 2> A[100000];
void merge(ll x) {
  auto it = mp.find(x);
  if (it != mp.begin()) {
    auto pv = prev(it);
    auto z = pv->second[0];
    if (pv->second[1] == it->second[1]) {
      mp.erase(pv);
      mp[x] = {z, it->second[1]};
    }
  }
}
int main() {
  cin >> n;
  for (int i=0; i<n; ++i) {
    cin >> A[i][0] >> A[i][1];
  }
  sort(A, A+n);
  for (int i=0; i<n; ++i) {
    --A[i][0];
    if (p <= A[i][0]) {
      mp[A[i][0]] = {p, 0};
      merge(A[i][0]);
    }
    p = max(p, A[i][0]+1);
    auto it = prev(mp.end());
    V.clear();
    while (A[i][1]) {
      r = it->first, l = it->second[0], y = it->second[1];
      if (r-l+1 <= A[i][1]) {
        A[i][1] -= r-l+1;
        mp[r] = {l, it->second[1]+1};
        V.push_back(r);
      }
      else {
        mp.erase(it);
        mp[l+A[i][1]-1] = {l, y+1};
        V.push_back(l+A[i][1]-1);
        mp[r] = {l+A[i][1], y};
        break;
      }
      it = prev(it);
    }
    for (auto u : V) {
      merge(u);
    }
  }
  for (auto [x, z] : mp) {
    r = x, l = z[0], y = z[1];
    f += (r-l+1) * y * (y-1) / 2;
  }
  cout << f << '\n';
}
컴파일 시 표준 에러 (stderr) 메시지
sails.cpp: In function 'int main()':
sails.cpp:61:13: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   61 |   for (auto [x, z] : mp) {
      |             ^| # | 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... |