# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
84360 | 2018-11-14T14:20:51 Z | win11905 | Sails (IOI07_sails) | C++11 | 126 ms | 4896 KB |
#include <bits/stdc++.h> #define long long long #define pii pair<int, int> #define x first #define y second using namespace std; const int N = 1e5; int n, t[N]; vector<pii> V; int num[N]; void update(int x, int v) { for(int i = x; i > 0; i -= i & -i) t[i-1] += v; } int query(int x, int v = 0) { for(int i = x; i <= N; i += i & -i) v += t[i-1]; return v; } int getft(int x) { int l = 0, r = N; while(l < r) { int m = (l + r + 1) >> 1; if(query(m) >= x) l = m; else r = m-1; } return l; } int main() { scanf("%d", &n); for(int i = 0, a, b; i < n; ++i) scanf("%d %d", &a, &b), V.emplace_back(a, b); sort(V.begin(), V.end()); for(auto x : V) { int h, k; tie(h, k) = x; int p = h - k; update(h, 1); if(!p) continue; int lb = min(getft(query(p)), h), rb = getft(query(p) + 1); update(lb, -1), update(rb, -1); update(rb+k-(h-lb), 1); } long ans = 0; for(int i = 1; i <= N; ++i) ans += 1ll * query(i) * (query(i)-1) / 2; printf("%lld\n", ans); }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 5 ms | 256 KB | Output is correct |
2 | Correct | 5 ms | 372 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 6 ms | 580 KB | Output is correct |
2 | Correct | 5 ms | 580 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 5 ms | 580 KB | Output is correct |
2 | Correct | 5 ms | 580 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 5 ms | 580 KB | Output is correct |
2 | Correct | 7 ms | 580 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 7 ms | 588 KB | Output is correct |
2 | Correct | 7 ms | 928 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 13 ms | 928 KB | Output is correct |
2 | Correct | 42 ms | 1304 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 38 ms | 1312 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 67 ms | 1644 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 96 ms | 2144 KB | Output is correct |
2 | Correct | 89 ms | 2968 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 109 ms | 3060 KB | Output is correct |
2 | Correct | 87 ms | 3752 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 126 ms | 3848 KB | Output is correct |
2 | Correct | 95 ms | 4896 KB | Output is correct |