Submission #1337023

#TimeUsernameProblemLanguageResultExecution timeMemory
1337023iq500Just Long Neckties 2 (JOI25_ho_t4)C++20
0 / 100
0 ms344 KiB
#include<bits/stdc++.h>
//#define int long long
#define pb push_back
#define fir first
#define sec second
using namespace std;

bool comp(vector<int> a, vector<int> b){ //return true if a is smaller than b
    if(a.size()<b.size()) return true;
    if(a.size()>b.size()) return false;
    if(a<b) return true;
}

signed main(){
    int n; cin>>n;
    int a[n+1];
    for(int i=1; i<=n; i++) cin>>a[i];
    vector<vector<vector<int>>> dp(n+1);
    for(int i=0; i<=n; i++) dp[i].resize(3);
    for(int i=1; i<=n; i++){
        for(int j=1; j<=2; j++){
            if(i-j<0) break;
            vector<int> tmp;
            vector<int> x=dp[i-j][0];
            vector<int> y=dp[i-j][1];
            if(comp(x, y)){
                tmp=x;
            }
            else{
                tmp=y;
            }
            auto it=lower_bound(tmp.begin(), tmp.end(), -a[i]);
            if(it==tmp.end()){
                //cout<<-a[i]<<" ekliyoz\n";
                tmp.pb(-a[i]);
            }
            else{
                (*it)=-a[i];
            }
            dp[i][j-1]=tmp;

        }
    }

    int ans=INT_MAX;
    for(int i=n; i>=n-1; i--){
        for(int j=0; j<=1; j++){
            int gh=dp[i][j].size();
            ans=min(ans, gh);
        }
    }
    cout<<ans<<"\n";
    return 0;
}

Compilation message (stderr)

Main.cpp: In function 'bool comp(std::vector<int>, std::vector<int>)':
Main.cpp:12:1: warning: control reaches end of non-void function [-Wreturn-type]
   12 | }
      | ^
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...