Submission #216766

#TimeUsernameProblemLanguageResultExecution timeMemory
216766mohamedsobhi777Boxes with souvenirs (IOI15_boxes)C++14
20 / 100
5 ms384 KiB
#include <bits/stdc++.h>
#include "boxes.h"
using namespace std ; 
const int M_N = 1e5 + 7 ; 

long long delivery(int N, int K, int L, int p[]) {
    long long ret = 0 , pivot = -1 ; 
    sort(p , p + N) ; 
    for(int i =0 ; i < N ; i++){
        if(p[i] <=L /2 )
            pivot = i ;
    }
    long long cur = 0 , swp = -1 ; 
    for(int i = 0 ; i <=pivot ; i++){
        cur++;
        if(cur==K){
            ret+=2*p[i] ; 
            cur = 0 ; 
            swp = i ; 
        } 
    }
    for(int i = 0 ; i <=swp ; i++)p[i] = 0;
    cur = 0 , swp = N ; 
    for(int i = N-1 ; i>pivot ; i--){
        cur++ ; 
        if(cur==K){
            ret+=2*(L - p[i]) ; 
            cur = 0 ; 
            swp = i ; 
        }
    }
    for(int i = swp ; i <N ; i++)p[i] = 0 ; 
    long long road1 = 0 , road2 = 0 ; 
    for(int i = 0 ; i < N;i++){
        if(i<=pivot){
            road1 = 2ll * p[i] ; 
        }else if(!road2 && p[i]){
            road2 = 2ll*(L - p[i]) ; 
        }
    }
    ret+=min(1ll * L , road1 + road2) ; 
    return 1ll * ret;
}

Compilation message (stderr)

boxes.cpp: In function 'long long int delivery(int, int, int, int*)':
boxes.cpp:32:17: warning: conversion to 'int' from 'long long int' may alter its value [-Wconversion]
     for(int i = swp ; i <N ; i++)p[i] = 0 ; 
                 ^~~
#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...