Submission #160035

# Submission time Handle Problem Language Result Execution time Memory
160035 2019-10-25T17:51:25 Z Rouge_Hugo Global Warming (CEOI18_glo) C++14
27 / 100
1348 ms 44280 KB
#include <bits/stdc++.h>

using namespace std;
int n,x;
const int 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]]++;
        m[a[i]-x]++;
        m[a[i]+x]++;
    }
    int 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 376 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 376 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 376 KB Output isn't correct
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 811 ms 17816 KB Output is correct
2 Correct 781 ms 17928 KB Output is correct
3 Correct 768 ms 17784 KB Output is correct
4 Correct 807 ms 17812 KB Output is correct
5 Correct 415 ms 9464 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 232 ms 14072 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 578 ms 22488 KB Output is correct
2 Correct 571 ms 22520 KB Output is correct
3 Correct 1348 ms 44280 KB Output is correct
4 Correct 639 ms 22904 KB Output is correct
5 Correct 409 ms 22428 KB Output is correct
6 Correct 782 ms 42484 KB Output is correct
7 Correct 763 ms 42524 KB Output is correct
8 Correct 468 ms 22520 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 376 KB Output isn't correct
4 Halted 0 ms 0 KB -