# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1104913 | salmon | Salesman (IOI09_salesman) | C++14 | 0 ms | 0 KiB |
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 <bits/stdc++.h>
using namespace std;
int N;
int D,U;
int S;
vector<pair<int,int>> f[500100];
map<int,int> sat;
const int inf = 1.1e9;
int retrieve(int p){
int num = -inf;
if(sat.find(p) != sat.end()){
auto it = sat.find(p);
num = it -> second;
}
else{
auto it = sat.lower_bound(p);
if(it != sat.end()){
num = max(num, it -> second - U * (it -> first - p) );
}
if(it != sat.begin()){
advance(it,-1);
num = max(num, it -> second - D * (p - it -> first) );
}
}
return num;
}