이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "boxes.h"
#include <vector>
using namespace std;
int ans;
void dfs(int nodo,long long int &x,int &K,vector<bool>v,vector<vector<int> >&g,vector<int>&box){
v[nodo]=true;
if(box[nodo]<=K){
K-=box[nodo];
box[nodo]=0;
}
else{
box[nodo]-=K;
K=0;
}
if(K!=0){
for(int i:g[nodo]){
if(!v[i]){
x++;
dfs(i,x,K,v,g,box);
}
}
}
else{
int L=g.size();
ans=x;
x+=min(nodo,L-nodo);
}
}
long long delivery(int N, int K, int L, int p[]) {
vector<int>box(L,0);
for(int i=0;i<N;i++){
box[p[i]]++;
}
vector<vector<int> >g(L);
for(int i=0;i<L-1;i++){
g[i].push_back(i+1);
g[i+1].push_back(i);
}
g[L-1].push_back(0);
g[0].push_back(L-1);
int n=0;
long long int r=0;
while(n<N){
vector<bool>v(L,false);
long long int x=0;
int k=K;
dfs(0,x,k,v,g,box);
r+=ans;
n+=K-k;
}
return r;
}
컴파일 시 표준 에러 (stderr) 메시지
boxes.cpp: In function 'void dfs(int, long long int&, int&, std::vector<bool>, std::vector<std::vector<int> >&, std::vector<int>&)':
boxes.cpp:26:17: warning: conversion from 'std::vector<std::vector<int> >::size_type' {aka 'long unsigned int'} to 'int' may change value [-Wconversion]
26 | int L=g.size();
| ~~~~~~^~
boxes.cpp:27:9: warning: conversion from 'long long int' to 'int' may change value [-Wconversion]
27 | ans=x;
| ^
# | 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... |