Submission #328418

#TimeUsernameProblemLanguageResultExecution timeMemory
328418egasLightning Rod (NOI18_lightningrod)C++14
11 / 100
1879 ms262148 KiB
#include <bits/stdc++.h> using namespace std; int solve(int l,int r,vector<pair<int,int> > &v) { if(l==r) { return 1; } if(l>=r) { return 0; } int res=INT_MAX; for(int i=l; i<=r; i++) { int left=i; int right=i; for(int j=i; j<=r; j++) { if(abs(v[i].second-v[j].second)>=abs(v[i].first-v[j].first)) { right=j; } else { break; } } for(int j=i; j>=l; j--) { if(abs(v[i].second-v[j].second)>=abs(v[i].first-v[j].first)) { left=j; } else { break; } } res=min(res,1+solve(l,left-1,v)+solve(right+1,r,v)); } return res; } int32_t main() { ios_base::sync_with_stdio(false); cin.tie(0); int n; cin >> n; vector<pair<int,int> > v; bool isSub1=true; for(int i = 0 ; i < n ; i++) { int x; cin >> x; int y; cin >> y; if(y!=1)isSub1=false; v.push_back({x,y}); } if(isSub1) { cout << n << '\n'; } else { cout << solve(0,n-1,v) << '\n'; } 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...