제출 #1307575

#제출 시각아이디문제언어결과실행 시간메모리
1307575ndn_it81Solar Storm (NOI20_solarstorm)C++20
0 / 100
311 ms188392 KiB
#include <bits/stdc++.h>
#define int long long
#define fr(i,a,n) for(int i=a;i<=n;i++)
#define fx(i,a,b) for(int i=a;i>=b;i--)
#define endl "\n"
#define FILE "name"
using namespace std;
const int N=1e6+6;
const int mod=1e9+7;
const int inf=INT_MAX;
int nxt[N][25];
int x[N],v[N];
int cnt[N];
void sol(){
    int n,k,r;
    cin>>n>>k>>r;
    x[1]=0;
    fr(i,1,n-1){
        int d; cin>>d;
        x[i+1]=x[i]+d;
    }
    fr(i,1,n){
        cin>>v[i];
        cnt[i]=cnt[i-1]+v[i];
    }
    int idx=1;
    int j=1;
    fr(i,1,n){
        while(idx+1<=n&&x[idx+1]<=x[i]+r){
            ++idx;
        }
        if(j<idx) j=idx;
        while(j+1<=n&&x[j+1]<=x[idx]+r){
            ++j;
        }
        nxt[i][0]=j+1;
    }
    fr(p,1,20){
        nxt[n+1][p]=n+1;
    }
    fr(p,1,20){
        fr(i,1,n){
            nxt[i][p]=nxt[nxt[i][p-1]][p-1];
        }
    }
    int ans=0;
    fr(i,1,n){
        int idx=i;
        int tmp=k;
        fx(p,20,0){
            if((tmp>>p)&1){
                idx = nxt[idx][p];
                if(idx>n) break;
            }
        }
        ans=max(ans,cnt[idx-1]-cnt[i-1]);
    }
    cout<<ans;
}
signed main(){
    ios_base::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    if(fopen(FILE".inp","r")){
        freopen(FILE".inp","r",stdin);
        freopen(FILE".out","w",stdout);
    }
    sol();
    return 0;
}

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

SolarStorm.cpp: In function 'int main()':
SolarStorm.cpp:63:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   63 |         freopen(FILE".inp","r",stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
SolarStorm.cpp:64:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   64 |         freopen(FILE".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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...