Submission #415098

#TimeUsernameProblemLanguageResultExecution timeMemory
415098victoriadBoxes with souvenirs (IOI15_boxes)C++14
0 / 100
259 ms524292 KiB
#include "boxes.h"
#include <vector>

using namespace std;

int n;
int dfs(int nodo,bool b,int &K,vector<int>&box,int L){
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 && nodo!=L-1){
       return dfs(nodo+1,b,K,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;
        int k=K;
        r+=dfs(0,b,k,box,L);

    }
    return r;
}
#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...