Submission #1187722

#TimeUsernameProblemLanguageResultExecution timeMemory
1187722efedmrlrArcade (NOI20_arcade)C++20
0 / 100
0 ms324 KiB
// #pragma GCC optimize("O3,Ofast,unroll-loops") // #pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt") #include <bits/stdc++.h> using namespace std; #define lli long long int #define MP make_pair #define pb push_back #define REP(i,n) for(int i = 0; (i) < (n); (i)++) #define all(x) x.begin(), x.end() #define rall(x) x.rbegin(), x.rend() void fastio() { ios_base::sync_with_stdio(false); cin.tie(NULL); } const double EPS = 0.00001; const int INF = 1e9+500; const int N = 3e5+5; const int ALPH = 26; const int LGN = 25; constexpr int MOD = 1e9+7; int n,m,k; vector<int> pr; vector<array<int, 2> > evs; int mtch(int x) { for(int i = x + 1; i < m; i++) { if(pr[i] == -1 && evs[i][0] - evs[x][0] >= abs(evs[i][1] - evs[x][1])) { pr[i] = x; return -1; } } for(int i = x + 1; i < m; i++) { if(evs[i][0] - evs[x][0] >= abs(evs[i][1] - evs[x][1])) { int tmp = pr[i]; pr[i] = x; return tmp; } } return -1; } inline void solve() { cin >> n >> m; evs.resize(m); pr.assign(m + 3, -1); for(int i = 0; i < m; i++) { cin >> evs[i][0]; } for(int i = 0; i < m; i++) { cin >> evs[i][1]; } sort(all(evs)); int ans = 0; for(int i = 0; i < m; i++) { if(pr[i] != -1) { continue; } ans++; int cur = i; while(1) { cur = mtch(cur); if(cur == -1) break; } } cout << ans << "\n"; } signed main() { fastio(); int test = 1; // cin>>test; while(test--) { solve(); } }
#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...