제출 #415086

#제출 시각아이디문제언어결과실행 시간메모리
415086victoriad선물상자 (IOI15_boxes)C++14
0 / 100
285 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<vector<int> >&g,vector<int>&box){
v[nodo]=true;
if(box[nodo]<=K){
    K-=box[nodo];
    if(box[nodo]!=0 && nodo<=g.size()/2)b=false;
    n-=box[nodo];
    box[nodo]=0;

}
else{
    if(nodo<=g.size()/2)b=false;
    box[nodo]-=K;
    K=0;
    n-=K;
}
if(K!=0 && n!=0){
    for(int i:g[nodo]){

        if(!v[i]){
          return dfs(i,b,K,v,g,box);
          }
    }
}
else{
    int L=g.size();
    if(nodo<=L/2)ans=2*nodo;
    else if(b){
        ans=2*(L-nodo);
    }
    else{
        ans=L;
    }
    return ans;
}

}
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);
     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,g,box);

    }
    return r;
}

컴파일 시 표준 에러 (stderr) 메시지

boxes.cpp: In function 'int dfs(int, bool, int&, std::vector<bool>, std::vector<std::vector<int> >&, std::vector<int>&)':
boxes.cpp:11:28: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::vector<int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   11 |     if(box[nodo]!=0 && nodo<=g.size()/2)b=false;
      |                        ~~~~^~~~~~~~~~~~
boxes.cpp:17:12: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::vector<int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   17 |     if(nodo<=g.size()/2)b=false;
      |        ~~~~^~~~~~~~~~~~
boxes.cpp:31:17: warning: conversion from 'std::vector<std::vector<int> >::size_type' {aka 'long unsigned int'} to 'int' may change value [-Wconversion]
   31 |     int L=g.size();
      |           ~~~~~~^~
boxes.cpp: In function 'long long int delivery(int, int, int, int*)':
boxes.cpp:60:23: warning: unused variable 'x' [-Wunused-variable]
   60 |         long long int x=0;
      |                       ^
boxes.cpp: In function 'int dfs(int, bool, int&, std::vector<bool>, std::vector<std::vector<int> >&, std::vector<int>&)':
boxes.cpp:42:1: warning: control reaches end of non-void function [-Wreturn-type]
   42 | }
      | ^
#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...