답안 #851608

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
851608 2023-09-20T08:58:08 Z abcvuitunggio Sails (IOI07_sails) C++17
60 / 100
51 ms 4944 KB
#include <bits/stdc++.h>
#define int long long
using namespace std;
int n,h,k,a[100001];
pair <int, int> p[100001];
long long sum,res;
set <int> s;
void update(int i, int j){
    a[i]+=j;
    if (a[i])
        s.insert(i);
    else
        s.erase(i);
}
int32_t main(){
    ios_base::sync_with_stdio(NULL);cin.tie(nullptr);
    cin >> n;
    for (int i=1;i<=n;i++)
        cin >> p[i].first >> p[i].second;
    sort(p+1,p+n+1);
    s.insert(1);
    s.insert(n+1);
    for (int i=1;i<=n;i++){
        auto [h,k]=p[i];
        if (a[h-k+1]){
            update(h-k+1,1);
            update(h+1,-1);
            continue;
        }
        auto it=s.lower_bound(h-k+1);
        int r=*it;
        it--;
        int l=*it;
        r--;
        r=min(r,h);
        update(l,1);
        update(l+r-h+k,-1);
        update(r+1,1);
        update(h+1,-1);
    }
    for (int i=1;i<=n;i++){
        sum+=a[i];
        res+=sum*(sum-1)/2;
    }
    cout << res;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 1 ms 344 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 1 ms 344 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 1 ms 344 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 344 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 3 ms 856 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 12 ms 3928 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 21 ms 3012 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 27 ms 3152 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 36 ms 4944 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 51 ms 3392 KB Output is correct
2 Correct 20 ms 3728 KB Output is correct