이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "shortcut.h"
#include <bits/stdc++.h>
typedef long long ll;
using namespace std;
const ll INF = 1e18;
int n; ll c;
vector<ll> l,d,x;
bool check (ll k) {
ll delta = k-c;
ll difMax = INF, difMin = -INF, sumMax = INF, sumMin = -INF;
for (int i = 0; i < n; i++) {
for (int j = i+1; j < n; j++) {
if (x[j] - x[i] + d[i] + d[j] <= k) continue;
ll delta = k - c - d[i] - d[j];
difMax = min(x[j]-x[i]+delta, difMax);
difMin = max(x[j]-x[i]-delta, difMin);
sumMax = min(x[j]+x[i]+delta, sumMax);
sumMin = max(x[j]+x[i]-delta, sumMin);
}
}
for (int i = 0; i < n; i++) {
for (int j = i+1; j < n; j++) {
if (x[j] - x[i] < difMin) continue;
if (x[j] - x[i] > difMax) continue;
if (x[j] + x[i] < sumMin) continue;
if (x[j] + x[i] > sumMax) continue;
return true;
}
}
return false;
}
long long find_shortcut(int nt, std::vector<int> lt, std::vector<int> dt, int ct) {
n = nt; c = ct;
l.insert(l.end(),lt.begin(), lt.end());
d.insert(d.end(), dt.begin(), dt.end());
x.resize(n);
for (int i = 1; i < n; i++) x[i] = x[i-1] + l[i-1]; //length sum from left to index i
ll k = 0;
ll high = INF;
for (ll b = high/2; b > 0; b /= 2) {
while (k + b < high && !check(k+b)) {
k += b;
// cout << k << "\n";
}
}
return k+1;
}
컴파일 시 표준 에러 (stderr) 메시지
shortcut.cpp: In function 'bool check(ll)':
shortcut.cpp:13:8: warning: unused variable 'delta' [-Wunused-variable]
ll delta = k-c;
^~~~~
# | 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... |