Submission #416998

# Submission time Handle Problem Language Result Execution time Memory
416998 2021-06-03T10:02:20 Z egekabas Global Warming (CEOI18_glo) C++14
27 / 100
259 ms 12712 KB
#include <bits/stdc++.h>
#define all(x) (x).begin(), (x).end()
#define ff first
#define ss second
#define pb push_back
#define mp make_pair
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;
typedef pair<ll, ll> pll;
typedef pair<ull, ull> pull;
typedef pair<ll, ll> pii;
typedef pair<ld, ld> pld;
struct lis{
    set<pii> s;
    void add(pii nw){
        s.insert(nw);
        auto it = s.lower_bound(nw);
        if(it != s.begin()){
            auto it2 = it;
            --it2;
            if(it2->ss >= it->ss){
                s.erase(it);
                return;
            }
        }
        ++it;
        while(it != s.end()){
            if(it->ss <= nw.ss)
                it = s.erase(it);
            else
                break;
        }
    }
    ll get(ll x){
        auto it = s.lower_bound({x, 0});
        if(it == s.begin())
            return 0;
        --it;
        return it->ss;    
    }
};
lis s1, s2;
ll n, x;
int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    
    //freopen("in.txt", "r", stdin);
    //freopen("out.txt", "w", stdout);

    cin >> n >> x;
    ll ans = 0;
    while(n--){
        ll a;
        cin >> a;
        
        ll val = s1.get(a);
        ans = max(ans, val+1);
        s1.add({a, val+1});

        val = s1.get(a+x);
        ans = max(ans, val+1);
        s2.add({a, val+1});

        val = s2.get(a);
        ans = max(ans, val+1);
        s2.add({a, val+1});
    }
    cout << ans << '\n';
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 204 KB Output is correct
2 Correct 0 ms 204 KB Output is correct
3 Incorrect 1 ms 276 KB Output isn't correct
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 204 KB Output is correct
2 Correct 0 ms 204 KB Output is correct
3 Incorrect 1 ms 276 KB Output isn't correct
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 204 KB Output is correct
2 Correct 0 ms 204 KB Output is correct
3 Incorrect 1 ms 276 KB Output isn't correct
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 195 ms 376 KB Output is correct
2 Correct 205 ms 340 KB Output is correct
3 Correct 195 ms 332 KB Output is correct
4 Correct 200 ms 408 KB Output is correct
5 Correct 259 ms 12712 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 45 ms 336 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 87 ms 456 KB Output is correct
2 Correct 87 ms 344 KB Output is correct
3 Correct 179 ms 348 KB Output is correct
4 Correct 178 ms 8704 KB Output is correct
5 Correct 156 ms 6488 KB Output is correct
6 Correct 246 ms 12156 KB Output is correct
7 Correct 199 ms 12080 KB Output is correct
8 Correct 69 ms 332 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 204 KB Output is correct
2 Correct 0 ms 204 KB Output is correct
3 Incorrect 1 ms 276 KB Output isn't correct
4 Halted 0 ms 0 KB -