Submission #519662

#TimeUsernameProblemLanguageResultExecution timeMemory
519662ac2huArcade (NOI20_arcade)C++14
0 / 100
1 ms204 KiB
#include <bits/stdc++.h> using namespace std; const int N = 5e5 + 10; struct mov{ int t,loc; } a[N]; int n,m; // bool check(int mid){ // int hold[mid];// location of each of the hands // for(int i = 0;i<m;i++){ // } // } signed main(){ iostream::sync_with_stdio(false); cin.tie(nullptr);cout.tie(nullptr); cin >> n >> m; for(int i = 0;i<m;i++){ cin >> a[i].t; } for(int i =0 ;i<m;i++){ cin >> a[i].loc; } sort(a,a + m,[&](mov a,mov b){ return a.t < b.t||(a.t == b.t && a.loc < b.loc); }); vector<int> arms; for(int i = 0;i<m;i++){ pair<int,int> idx = {1e9,-1}; for(int j = 0;j<(int)arms.size();j++){ int e = arms[j]; if(abs(a[e].loc - a[i].loc) <= abs(a[e].t - a[i].t)){ int v = abs(a[e].t - a[i].t) - abs(a[e].loc - a[i].loc); if(idx.first > v) idx = {v,e}; } } if(idx.second == -1){ arms.push_back(i); } else{ arms[idx.second] = i; } // for(auto e : arms) // cout << e << " "; // cout << "\n"; } cout << arms.size() << "\n"; // int l = 1,r = m; // while(l < r){ // int mid = (l + r - 1)/2; // if(check(mid)) // r = mid; // else // l = mid + 1; // } // cout << l << "\n"; }
#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...