제출 #861156

#제출 시각아이디문제언어결과실행 시간메모리
861156RequiemGlobal Warming (CEOI18_glo)C++17
38 / 100
2060 ms9820 KiB
#include<bits/stdc++.h>
#define int long long
#define pb push_back
#define fast ios_base::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr);
#define MOD 1000000007
#define INF 1e18
#define fi first
#define se second
#define FOR(i,a,b) for(int i=a;i<=b;i++)
#define FORD(i,a,b) for(int i=a;i>=b;i--)
#define sz(a) ((int)(a).size())
#define pi 3.14159265359
#define TASKNAME "globalwarming"
template<typename T> bool maximize(T &res, const T &val) { if (res < val){ res = val; return true; }; return false; } 
template<typename T> bool minimize(T &res, const T &val) { if (res > val){ res = val; return true; }; return false; } 
using namespace std; 
typedef pair<int,int> ii; 
typedef pair<int,ii> iii; 
typedef vector<int> vi; 
const int MAXN = 2e5 + 9;
int a[MAXN],lisright[MAXN],lisleft[MAXN];
int n,x,lis[MAXN],dp[MAXN];
int getlis(int n){
        int ans = 0;
        fill(lis+1,lis+1+n,INF);
        for(int i=1;i<=n;i++){
            int l=1,r=n,res=0;
            while(l<=r){
                int mid = (l+r)>>1;
                if (lis[mid] < a[i]){
                    res = mid;
                    l = mid + 1;
                }
                else r = mid - 1;
            }
            lis[res+1] = a[i];
            ans = max(ans, res + 1);
        }
        return ans;
}
main() 
{ 
    fast; 
    // freopen(TASKNAME".inp","r",stdin); 
    // freopen(TASKNAME".out","w",stdout); 
    cin>>n>>x;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    if (x==0){
        cout<<getlis(n)<<endl;
        return 0;
    }
    //giam
    int ans = getlis(n);
    for(int i=1;i<=n;i++){
        a[i] -= x;
        ans = max(ans,getlis(n));
    }
    for(int i=1;i<=n;i++){
        a[i]+=x;
    }
    for(int i=n;i>=1;i--){
        a[i]+=x;
        ans = max(ans,getlis(n));
    }
    cout<<ans<<endl;
    
} 

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

glo.cpp:41:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   41 | main()
      | ^~~~
#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...