Submission #216779

# Submission time Handle Problem Language Result Execution time Memory
216779 2020-03-28T04:09:50 Z mohamedsobhi777 Boxes with souvenirs (IOI15_boxes) C++14
10 / 100
5 ms 384 KB
#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+=2ll*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+=2ll*(L - p[i]) ; 
            cur = 0 ; 
            swp = i ; 
        }
    }
    for(int i = swp ; i <N ; i++)p[i] = 0 ; 
    long long road1 = 0 , road2 = 0, road3 = 0, cnt1 = 0 , cnt2 = 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]) ; 
        }
    }
    for(int i =0 ; i < N; i++){
        if(p[i]){
            cnt1++; 
        }
        if(cnt1>K){
            cnt1 = p[i]; 
            break;
        }
    }
    for(int i = N-1 ; i >= 0 ; i--){
        if(p[i]){
            cnt2++ ; 
        }
        if(cnt2>K){
            cnt2 = p[i] ; 
            break;
        }
    }   
    if(road1 || road2){
        road3 = L + 2ll*min( 0ll*min( cnt1 , L - cnt1 ) , min(cnt2 , L-cnt2) );
    }
    ret+=min(road3 , road1 + road2) ; 
    return 1ll * ret;
}

Compilation message

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 time Memory Grader output
1 Correct 5 ms 256 KB Output is correct
2 Correct 5 ms 384 KB Output is correct
3 Correct 4 ms 256 KB Output is correct
4 Correct 5 ms 256 KB Output is correct
5 Correct 4 ms 256 KB Output is correct
6 Correct 5 ms 384 KB Output is correct
7 Correct 4 ms 256 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 5 ms 384 KB Output is correct
2 Incorrect 4 ms 256 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 4 ms 256 KB Output is correct
2 Correct 4 ms 256 KB Output is correct
3 Correct 4 ms 256 KB Output is correct
4 Correct 4 ms 256 KB Output is correct
5 Correct 4 ms 256 KB Output is correct
6 Incorrect 5 ms 256 KB Output isn't correct
7 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 5 ms 256 KB Output is correct
2 Correct 5 ms 384 KB Output is correct
3 Correct 4 ms 256 KB Output is correct
4 Correct 5 ms 256 KB Output is correct
5 Correct 4 ms 256 KB Output is correct
6 Correct 5 ms 384 KB Output is correct
7 Correct 4 ms 256 KB Output is correct
8 Correct 5 ms 384 KB Output is correct
9 Incorrect 4 ms 256 KB Output isn't correct
10 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 5 ms 256 KB Output is correct
2 Correct 5 ms 384 KB Output is correct
3 Correct 4 ms 256 KB Output is correct
4 Correct 5 ms 256 KB Output is correct
5 Correct 4 ms 256 KB Output is correct
6 Correct 5 ms 384 KB Output is correct
7 Correct 4 ms 256 KB Output is correct
8 Correct 5 ms 384 KB Output is correct
9 Incorrect 4 ms 256 KB Output isn't correct
10 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 5 ms 256 KB Output is correct
2 Correct 5 ms 384 KB Output is correct
3 Correct 4 ms 256 KB Output is correct
4 Correct 5 ms 256 KB Output is correct
5 Correct 4 ms 256 KB Output is correct
6 Correct 5 ms 384 KB Output is correct
7 Correct 4 ms 256 KB Output is correct
8 Correct 5 ms 384 KB Output is correct
9 Incorrect 4 ms 256 KB Output isn't correct
10 Halted 0 ms 0 KB -