제출 #1255373

#제출 시각아이디문제언어결과실행 시간메모리
1255373quocbaooTwo Antennas (JOI19_antennas)C++20
13 / 100
57 ms17740 KiB
#include<bits/stdc++.h>
#define fi first
#define se second
#define ll long long
using namespace std;
const int N=2e5;
int n,q,h[N+5],a[N+5],b[N+5];
namespace sub1{
    void xuly(){
        for (int i=1;i<=q;i++){
            int l,r;cin>>l>>r;
            int ma=-1;
            for (int j=l;j<=r;j++){
                for (int k=l;k<=r;k++){
                    if (a[j]<=abs(j-k)&&abs(j-k)<=b[j]){
                        if (a[k]<=abs(j-k)&&abs(j-k)<=b[k])
                            ma=max(ma,abs(h[j]-h[k]));
                    }
                }
            }
            cout<<ma<<'\n';
        }
    }
}
namespace sub2{
    int dp[2005][2005];
    void xuly(){
        memset(dp,-1,sizeof(dp));
        for (int i=1;i<=n;i++){
            for (int j=i+1;j<=n;j++){
                if (a[j]<=abs(i-j)&&abs(j-i)<=b[j]){
                    if (a[i]<=abs(j-i)&&abs(j-i)<=b[i])
                        dp[i][j]=abs(h[j]-h[i]);
                }
            }
        }
        for (int len=2;len<=n;len++){
            for (int i=1;i<=n-len+1;i++){
                int j=i+len-1;
                dp[i][j]=max(dp[i][j],max(dp[i+1][j],dp[i][j-1]));
            }
        }
        for (int i=1;i<=q;i++){
            int l,r;cin>>l>>r;
            cout<<dp[l][r]<<'\n';
        }
    }
}
int main(){
    if (fopen("atten.inp","r")){
        freopen("atten.inp","r",stdin);
        freopen("atten.out","w",stdout);
    }
    ios_base::sync_with_stdio(0);
    cin.tie(0);cout.tie(0);
    cin>>n;
    for (int i=1;i<=n;i++) cin>>h[i]>>a[i]>>b[i];
    cin>>q;
    if (n<=300&&q<=300) return sub1::xuly(),0;
    if (n<=2000) return sub2::xuly(),0;
//    full::xuly();
}

컴파일 시 표준 에러 (stderr) 메시지

antennas.cpp: In function 'int main()':
antennas.cpp:51:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   51 |         freopen("atten.inp","r",stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
antennas.cpp:52:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   52 |         freopen("atten.out","w",stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...