Submission #160040

# Submission time Handle Problem Language Result Execution time Memory
160040 2019-10-25T18:06:23 Z Rouge_Hugo Global Warming (CEOI18_glo) C++14
27 / 100
1346 ms 49784 KB
#include <bits/stdc++.h>

using namespace std;
long long  n,x;
const long long  N=200009;
map<long long,long long>m;
int  tree[11*N],tree1[11*N],a[N];
void update(int ind,int st,int end,int uind,int uval)
{
    if (st==end)
    {
        tree[ind]=max(tree[ind],uval);
        return ;
    }
    int m=(st+end)/2;
    if (uind>m)update(ind*2+2,m+1,end,uind,uval);
    else update(ind*2+1,st,m,uind,uval);
    tree[ind]=max(tree[ind*2+1],tree[ind*2+2]);
}

void update1(int ind,int st,int end,int uind,int uval)
{
    if (st==end)
    {
        tree1[ind]=max(tree1[ind],uval);
        return ;
    }
    int m=(st+end)/2;
    if (uind>m)update1(ind*2+2,m+1,end,uind,uval);
    else update1(ind*2+1,st,m,uind,uval);
    tree1[ind]=max(tree1[ind*2+1],tree1[ind*2+2]);
}
int query(int ind,int st,int end,int l,int r)
{
    if (l<=st&&end<=r)return tree[ind];
    if (l>end||r<st)return 0;
    int m=(st+end )/2;
    return max(query(ind*2+1,st,m,l,r),query(ind*2+2,m+1,end,l,r));

}

int query1(int ind,int st,int end,int l,int r)
{
    if (l<=st&&end<=r)return tree1[ind];
    if (l>end||r<st)return 0;
    int  m=(st+end )/2;
    return max(query1(ind*2+1,st,m,l,r),query1(ind*2+2,m+1,end,l,r));
}
int main()
{ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);

    cin>>n>>x;
    for(int  i=0;i<n;i++){
        cin>>a[i];
        m[a[i]-1]++;
        m[a[i]]++;
        m[a[i]+x-1]++;
    }
    long long  re=0;
    for(auto it:m)
    {
        m[it.first]=re++;
    }
    int  mx=0;
    for(int  i=0;i<n;i++)
    {
        int   xx=query(0,0,re,0,m[a[i]-1]);
        update(0,0,re,m[a[i]],xx+1);

        int  y=query(0,0,re,0,m[a[i]+x-1]);
        y=max(query1(0,0,re,0,m[a[i]-1]),y);
        update1(0,0,re,m[a[i]],y+1);
        mx=max(mx,y+1);
        mx=max(mx,xx+1);
    }
    cout<<mx;
}
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 2 ms 376 KB Output is correct
3 Incorrect 2 ms 380 KB Output isn't correct
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 2 ms 376 KB Output is correct
3 Incorrect 2 ms 380 KB Output isn't correct
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 2 ms 376 KB Output is correct
3 Incorrect 2 ms 380 KB Output isn't correct
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 974 ms 34332 KB Output is correct
2 Correct 1002 ms 34584 KB Output is correct
3 Correct 996 ms 34424 KB Output is correct
4 Correct 1012 ms 34488 KB Output is correct
5 Correct 508 ms 17784 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 226 ms 14044 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 564 ms 25208 KB Output is correct
2 Correct 612 ms 25144 KB Output is correct
3 Correct 1346 ms 49784 KB Output is correct
4 Correct 517 ms 25592 KB Output is correct
5 Correct 358 ms 15480 KB Output is correct
6 Correct 659 ms 29216 KB Output is correct
7 Correct 660 ms 29220 KB Output is correct
8 Correct 465 ms 22776 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 2 ms 376 KB Output is correct
3 Incorrect 2 ms 380 KB Output isn't correct
4 Halted 0 ms 0 KB -