제출 #644798

#제출 시각아이디문제언어결과실행 시간메모리
644798KarukGlobal Warming (CEOI18_glo)C++14
100 / 100
138 ms20428 KiB
#include<bits/stdc++.h>
using namespace std;
long long max(long long &a,long long &b) {return a>b?a:b;}
int main() {
    long long n,x;cin>>n>>x;
    long long a[n];
    long long poslis[n];
    vector<long long>lis(n,1e18);
    vector<vector<long long> >history(n,{(long long)(1e18)});
    long long ans=0;
    for(int i=0;i<n;i++) {
        long long y;cin>>y;
        long long pos=lower_bound(lis.begin(),lis.end(),y)-lis.begin();
        history[pos].push_back(y);
        poslis[i]=pos;
        lis[pos]=y;
        ans=max(ans,pos+1);
    }
    vector<long long>revlis(n,1e18);
    for(int i=n-1;i>0;i--) {
        long long cur=history[poslis[i]].back();
        history[poslis[i]].pop_back();
        lis[poslis[i]]=history[poslis[i]].back();
        cur+=x;
        cur=-cur;
        long long pos=lower_bound(revlis.begin(),revlis.end(),cur)-revlis.begin();
        revlis[pos]=cur;
        cur=-cur;
        long long pos1=lower_bound(lis.begin(),lis.end(),cur)-lis.begin();
        ans=max(ans,pos1+pos+1);
    }
    cout<<ans<<endl;
    return 0;
}

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

glo.cpp: In function 'int main()':
glo.cpp:6:15: warning: unused variable 'a' [-Wunused-variable]
    6 |     long long a[n];
      |               ^
#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...