Submission #979144

#TimeUsernameProblemLanguageResultExecution timeMemory
979144MilosMilutinovicLightning Rod (NOI18_lightningrod)C++14
100 / 100
614 ms178196 KiB
#include <bits/stdc++.h> using namespace std; const int MAX = 10000005; int x[MAX], y[MAX]; stack<pair<int, int>> stk; int readint(){ int x=0,f=1; char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();} return x*f; } int main() { int n, a, b, i; n = readint(); for (i = 0; i < n; i++) { a = readint(); b = readint(); int x = a - b; int y = a + b; while (!stk.empty() && stk.top().first >= x && stk.top().second <= y) { stk.pop(); } if (stk.empty() || stk.top().second < y) { stk.push({x, y}); } } printf("%d\n", (int) stk.size()); 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...