이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "shortcut.h"
#include <bits/stdc++.h>
#define MA 5100000000000000010
using namespace std;
long long ne,N;
long long MAX=MA;
vector<long long> di(200),s(200);
long long diam(int a,int b){
long long r=-1;
for(int i=0;i<N;i++){
for(int j=i+1;j<N;j++){
long long op1=di[i]+di[j]+abs(s[j]-s[i]);
long long op2=(di[i]+di[j]+abs(s[i]-s[a])+abs(s[j]-s[b])+ne);
// cout<<op1<<" "<<op2<<endl;
op1=di[i]+di[j];
op1+=abs(s[j]-s[i]);
op2=di[i]+di[j];
op2+=abs(s[i]-s[a])+abs(s[j]-s[b])+ne;
r=max(r,min(op1,op2));
// cout<<op1<<" "<<op2<<endl;
// printf("%d %d %d %d %d %d %d\n",di[i],di[j],s[j],s[i],s[a],s[b],ne);
}
}
return r;
}
long long find_shortcut(int n, std::vector<int> l, std::vector<int> d, int c){
ne=c;
fill(di.begin(),di.end(),0);
fill(s.begin(),s.end(),0);
N=n;
long long acum=0;
for(int i=0;i<=l.size();i++){
s[i]=acum;
di[i]=d[i];
acum+=l[i];
}
long long mi=MAX;
for(int i=0;i<n;i++){
for(int j=i+1;j<n;j++){
long long rp=diam(i,j);
mi=min(rp,mi);
}
}
return mi;
}
컴파일 시 표준 에러 (stderr) 메시지
shortcut.cpp: In function 'long long int find_shortcut(int, std::vector<int>, std::vector<int>, int)':
shortcut.cpp:32:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i=0;i<=l.size();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... |
# | 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... |