| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1209889 | ansori | Shortcut (IOI16_shortcut) | C++20 | 286 ms | 1348 KiB |
#include "shortcut.h"
#include<bits/stdc++.h>
#define ll long long
const int N = 3e3 + 5;
const ll inf = 1e16;
using namespace std;
ll ans , C;
vector<ll> ds;
vector<int> l , d;
bool ok(ll dst){
ll mndif = -inf , mxdif = inf , mnsum = -inf , mxsum = inf;
int n = d.size();
for(int i = 0;i < n; ++ i){
for(int j = i + 1;j < n; ++ j){
if(ds[j] - ds[i] + d[j] + d[i] <= dst) continue ;
ll dif = dst - d[i] - d[j] - C;
mndif = max(mndif , ds[j] - ds[i] - dif);
mxdif = min(mxdif , ds[j] - ds[i] + dif);
mnsum = max(mnsum , ds[j] + ds[i] - dif);
mxsum = min(mxsum , ds[j] + ds[i] + dif);
}
}
for(int i = 0;i < n; ++ i){
for(int j = i + 1;j < n; ++ j){
if(ds[j] - ds[i] < mndif) continue ;
if(ds[j] - ds[i] > mxdif) continue ;
if(ds[j] + ds[i] < mnsum) continue ;
if(ds[j] + ds[i] > mxsum) continue ;
return 1;
}
}
return 0;
}
long long find_shortcut(int n, std::vector<int> lenth, std::vector<int> dist , int c)
{
C = c;
l = lenth;
d = dist;
if(n > 3e3){
//XD
return -1;
}
ds = vector<ll> (n , 0);
for(int i = 1;i < n; ++ i) ds[i] = ds[i - 1] + l[i - 1];
ll l = 0;
ll r = inf + 1;
while(l + 1 < r){
ll mid = (l + r) / 2;
if(ok(mid)) r = mid;
else l = mid;
}
return r;
}
Compilation message (stderr)
| # | 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... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
