제출 #111785

#제출 시각아이디문제언어결과실행 시간메모리
111785mechfrog88Two Antennas (JOI19_antennas)C++14
13 / 100
570 ms525312 KiB
#include <bits/stdc++.h> #pragma GCC optimize("unroll-loops,no-stack-protector") #pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native") using namespace std; typedef long long ll; typedef long double ld; struct tower{ ll h; ll a,b; }; int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); ll n; cin >> n; vector <tower> arr(n+1); vector <vector<ll>> d(n+1,vector<ll>(n+1,-1)); for (int z=0;z<n;z++){ tower temp; cin >> temp.h >> temp.a >> temp.b; arr[z+1] = temp; } for (int x=1;x<=n;x++){ ll ans = -1; for (int y=x+arr[x].a ; y<=n && y <= x+arr[x].b;y++){ if ( y <= x + arr[x].b && y >= x + arr[x].a && x >= y - arr[y].b && x <= y - arr[y].a) ans = max(ans,abs(arr[x].h-arr[y].h)); d[x][y] = ans; } } for (int x=n;x>-1;x--){ for (int y=n-1;y>-1;y--){ d[y][x] = max(d[y][x],d[y+1][x]); } } for (int x=0;x<=n;x++){ for (int y=1;y<=n;y++){ d[x][y] = max(d[x][y],d[x][y-1]); } } // for (int z=1;z<=n;z++){ // for (int x=1;x<=n;x++){ // cout << d[z][x] << ","; // } // cout << endl; // } ll q; cin >> q; for (int z=0;z<q;z++){ ll a,b; cin >> a >> b; cout << d[a][b] << endl; } cin >> q; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...