제출 #198137

#제출 시각아이디문제언어결과실행 시간메모리
198137popovicirobertLightning Rod (NOI18_lightningrod)C++14
66 / 100
2070 ms242096 KiB
#include <bits/stdc++.h> #define lsb(x) (x & (-x)) #define ll long long #define ull unsigned long long #define uint unsigned int using namespace std; const int MAXN = (int) 1e7 + 5; int x[MAXN + 1], y[MAXN + 1]; int stk[MAXN + 1], sp[MAXN + 1]; int main() { #ifdef HOME ifstream cin("A.in"); ofstream cout("A.out"); #endif int i, n; ios::sync_with_stdio(false); cin.tie(0), cout.tie(0); cin >> n; for(i = 1; i <= n; i++) { cin >> x[i] >> y[i]; } stk[0] = -1; int sz = 0; for(i = 1; i <= n; i++) { while(sz > 0 && x[i] - x[stk[sz]] <= y[i] - y[stk[sz]]) { sz--; } sp[stk[sz] + 1]++; stk[++sz] = i; } sz = 0, stk[0] = n + 1; for(i = n; i >= 1; i--) { while(sz > 0 && x[stk[sz]] - x[i] <= y[i] - y[stk[sz]]) { sz--; } sp[stk[sz]]--; stk[++sz] = i; } int ans = 0; for(i = 1; i <= n; i++) { sp[i] += sp[i - 1]; ans += (sp[i] == 1); } cout << ans; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...