This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int n;
int main() {
cin >> n;
vector<pair<int, int> > ties(n + 1);
vector<int> current(n);
for (int i = 0; i <= n; i++) {
cin >> ties[i].first;
ties[i].second = i;
}
for (int i = 0; i < n; i++) {
cin >> current[i];
}
sort(ties.begin(), ties.end());
sort(current.begin(), current.end());
vector<int> start = {0};
vector<int> shifted = {0};
int temp1 = 0;
int temp2 = 0;
for (int i = 0; i < n; i++) {
temp1 = max(temp1, ties[i].first - current[i]);
start.push_back(temp1);
}
for (int i = n - 1; i >= 0; i--) {
temp2 = max(temp2, ties[i + 1].first - current[i]);
shifted.push_back(temp2);
}
reverse(shifted.begin(), shifted.end());
//indexing issue below?
vector <int> ans(n+1);
for (int i = 0; i <= n; i++) {
ans[ties[i].second] = max(start[i], shifted[i]);
}
for (int i = 0; i <= n; i++) {
cout << ans[i] << " ";
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |