Submission #936139

#TimeUsernameProblemLanguageResultExecution timeMemory
936139vjudge1Global Warming (CEOI18_glo)C++17
10 / 100
31 ms8300 KiB
#include <bits/stdc++.h>
#define fi first
#define se second
#define FOR(i,l,r) for (int i = l; i <= r; i++)
#define FORD(i,l,r) for (int i = l; i >= r; i--)
#define el cout <<"\n"
#define SZ(x) ((int)(x).size())
#define ALL(x) (x).begin(), (x).end()
#define MASK(i) ((1LL)<<(i))
#define BIT(x,i) (((x)>>(i))&(1LL))
using namespace std;

const long long N=1e6+5;
const long long base=311;
const long long mod=1e9+7;
const long long INF=1e9+7;
 int n,x;
 vector<int>a(N+1),f(N+1);
int LIS()
{
        f[1]=1;
    int ans=1;
    for (int i=2;i<=n;i++)
    {
        int l=1,r=ans,j=0;
        while (l<=r)
        {
            int mid=(l+r)/2;
            if (a[i]>a[f[mid]])
            {
                j=mid;
                l=mid+1;
            }
            else
            {
                r=mid-1;
            }
        }
        if (j==ans)
        {
            f[++ans]=i;
        }
        if (a[i]<a[f[j+1]])
        {
            f[j+1]=i;
        }
    }
    return ans;
}
void ip()
{
    cin>>n>>x;
    for (int i=1;i<=n;i++)
    {
        cin>>a[i];
    }
    if(x==0)
    {
        cout<<LIS()<<endl;
    }
}
int main()
{
//    freopen("nhap.inp","r",stdin);
//    freopen("nhap.out","w",stdout);
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);cout.tie(0);
    int t=1;
    //cin>>t;
    while(t--)
    {
        ip();
    }
    return 0;
}
#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...