Submission #1300210

#TimeUsernameProblemLanguageResultExecution timeMemory
1300210nathan4690Arcade (NOI20_arcade)C++20
100 / 100
195 ms6528 KiB
#include <bits/stdc++.h> #define ll long long #define ld long double #define f1(i,n) for(int i=1;i<=n;i++) #define __file_name "" using namespace std; const ll maxn=1e6+5, inf=1e18; struct FenwickTree{ int n; vector<int> bit; void init(int n_){ n = n_; bit.resize(n + 1, 0); } void update(int idx, int v){ for(;idx<=n;idx+=idx&-idx) bit[idx] = max(bit[idx], v); } int getMax(int idx){ int s = 0; for(;idx>0;idx-=idx&-idx) s = max(s, bit[idx]); return s; } }; int n, m; pair<int,int> a[maxn]; bool cmp(pair<int,int> x, pair<int,int> y){ x.second *= -1; y.second *= -1; return x < y; } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); if(fopen(__file_name ".inp", "r")){ freopen(__file_name ".inp", "r", stdin); freopen(__file_name ".out", "w", stdout); } // code here cin >> n >> m; f1(i,m) cin >> a[i].first; f1(i,m) cin >> a[i].second; f1(i,m) a[i] = {a[i].first + a[i].second, a[i].second - a[i].first}; sort(a+1,a+m+1,cmp); vector<int> vals; f1(i,m) vals.push_back(a[i].second); sort(vals.begin(), vals.end()); vals.erase(unique(vals.begin(), vals.end()), vals.end()); FenwickTree bit; bit.init(vals.size()); f1(i,m){ int idx = lower_bound(vals.begin(), vals.end(), a[i].second) - vals.begin() + 1; bit.update(idx, bit.getMax(idx - 1) + 1); } cout << bit.getMax(vals.size()) << '\n'; return 0; }

Compilation message (stderr)

Arcade.cpp: In function 'int main()':
Arcade.cpp:38:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   38 |         freopen(__file_name ".inp", "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Arcade.cpp:39:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   39 |         freopen(__file_name ".out", "w", stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#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...