Submission #1316398

#TimeUsernameProblemLanguageResultExecution timeMemory
1316398vedchoudharyArcade (NOI20_arcade)C++20
100 / 100
143 ms24300 KiB
#include <bits/stdc++.h>
#pragma GCC optimize("O3")

using namespace std;

using ll = long long;
#define int ll

signed main() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    
    int n,m; cin >> n >> m;
    vector<int> t(m); for(int& i : t) cin >> i;
    vector<int> a(m); for(int& i : a) cin >> i;
    vector<int> u(m); for(int i = 0; i < m; i++) u[i] = a[i]+t[i];
    vector<int> v(m); for(int i = 0; i < m; i++) v[i] = a[i]-t[i];
    vector<pair<int,int>> seq(m); for(int i = 0; i < m; i++) seq[i] = {u[i],v[i]};
    sort(seq.begin(),seq.end(),[](const pair<int,int>& a, const pair<int,int>& b) -> bool {
        return (a.first==b.first)? a.second > b.second : a.first < b.first;
    });
    vector<int> lis;
    for(auto& [u,mv] : seq) {
        auto itr = lower_bound(lis.begin(),lis.end(),mv);
        if(itr==lis.end()) lis.push_back(mv);
        else *itr = mv;
    }
    cout << lis.size() << "\n";
    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...