Submission #415094

#TimeUsernameProblemLanguageResultExecution timeMemory
415094victoriadBoxes with souvenirs (IOI15_boxes)C++14
0 / 100
266 ms524292 KiB
#include "boxes.h" #include <vector> using namespace std; int ans,n; int dfs(int nodo,bool b,int &K,vector<bool>&v,vector<int>&box,int L){ v[nodo]=true; if(box[nodo]<=K){ K-=box[nodo]; if(box[nodo]!=0 && nodo<=L/2)b=false; n-=box[nodo]; box[nodo]=0; } else{ if(nodo<=L/2)b=false; box[nodo]-=K; K=0; n-=K; } if(K!=0 && n!=0){ if(nodo==0){ if(!v[1])return dfs(1,b,K,v,box,L); if(!v[L-1])return dfs(L-1,b,K,v,box,L); } else if(nodo==L-1){ if(!v[0])return dfs(0,b,K,v,box,L); if(!v[L-2])return dfs(L-2,b,K,v,box,L); } else{ if(!v[nodo+1])return dfs(nodo+1,b,K,v,box,L); if(!v[nodo-1])return dfs(nodo-1,b,K,v,box,L); } } else{ if(nodo<=L/2)return 2*nodo; else if(b){ return 2*(L-nodo); } else{ return L; } } } 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]]++; } n=N; long long int r=0; while(n>0){ bool b=true; vector<bool>v(L,false); long long int x=0; int k=K; r+=dfs(0,b,k,v,box,L); } return r; }

Compilation message (stderr)

boxes.cpp: In function 'long long int delivery(int, int, int, int*)':
boxes.cpp:57:23: warning: unused variable 'x' [-Wunused-variable]
   57 |         long long int x=0;
      |                       ^
boxes.cpp: In function 'int dfs(int, bool, int&, std::vector<bool>&, std::vector<int>&, int)':
boxes.cpp:46:1: warning: control reaches end of non-void function [-Wreturn-type]
   46 | }
      | ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...