Submission #1298160

#TimeUsernameProblemLanguageResultExecution timeMemory
1298160ThunnusArcade (NOI20_arcade)C++20
100 / 100
155 ms16476 KiB
#include<bits/stdc++.h> #pragma GCC optimize("unroll-loops,O3") using namespace std; using i64 = long long; #define int i64 #define vi vector<int> #define vvi vector<vi> #define vb vector<bool> #define se second #define fi first #define pii pair<int, int> #define sz(x) (int)(x).size() inline void solve(){ int n, m; cin >> n >> m; vi a(m), t(m); for(int i = 0; i < m; i++){ cin >> a[i]; } for(int i = 0; i < m; i++){ cin >> t[i]; } vector<pii> buttons(m); for(int i = 0; i < m; i++){ buttons[i] = {t[i] - a[i], t[i] + a[i]}; // t[i] - a[i] -> ileri, t[i] + a[i] -> geri, ileri şartı sağlanıyorsa geri gidemem } sort(buttons.begin(), buttons.end(), [&](const pii &lhs, const pii &rhs){return (lhs.se == rhs.se ? lhs.fi > rhs.fi : lhs.se < rhs.se);} ); // LDS kadar gidebiliyorum, count(LDS) = sz(LIS) vi lis; for(int i = 0; i < m; i++){ auto it = lower_bound(lis.begin(), lis.end(), buttons[i].fi); if(it == lis.end()){ lis.emplace_back(buttons[i].fi); } else{ *it = buttons[i].fi; } } cout << sz(lis) << "\n"; return; } signed main(){ ios_base::sync_with_stdio(false); cin.tie(0); int t = 1; //cin >> t; while(t--){ solve(); } 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...