이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
const int N = 5e5 + 10;
struct mov{
int t,loc;
} a[N];
int n,m;
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,j};
}
}
if(idx.second == -1){
arms.push_back(i);
}
else{
arms[idx.second] = i;
}
}
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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |