# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
415067 | victoriad | Boxes with souvenirs (IOI15_boxes) | C++14 | 305 ms | 524292 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 "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;
}
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... |