Submission #673803

#TimeUsernameProblemLanguageResultExecution timeMemory
673803sudheerays123Lightning Rod (NOI18_lightningrod)C++17
7 / 100
1352 ms262144 KiB
#include<bits/stdc++.h> using namespace std; #define fast ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); #define ll long long int const ll N = 100+5 , INF = 1e18 , MOD = 1e9+7; bool inside(ll x1 , ll y1 , ll x2 , ll y2){ return (abs(x2-x1) <= (y2-y1)); } void solve(){ ll n; cin >> n; vector<pair<ll,ll>> a(n+5); for(ll i = 1; i <= n; i++) cin >> a[i].first >> a[i].second; vector<ll> left(n+5) , right(n+5); for(ll i = 1; i <= n; i++){ for(ll j = i; j >= 1; j--){ if(inside(a[j].first,a[j].second,a[i].first,a[i].second)) left[i] = j; else break; } } for(ll i = 1; i <= n; i++){ for(ll j = i; j <= n; j++){ if(inside(a[j].first,a[j].second,a[i].first,a[i].second)) right[i] = j; else break; } } vector<ll> dp(n+5,INF); dp[0] = 0; for(ll i = 1; i <= n; i++){ dp[i] = min(dp[i],dp[left[i]-1]+1); dp[right[i]] = min(dp[right[i]],dp[left[i]-1]+1); } cout << dp[n]; } int main(){ fast; ll tc = 1; // cin >> tc; while(tc--) solve(); 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...