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...