Submission #133729

#TimeUsernameProblemLanguageResultExecution timeMemory
133729Runtime_error_Boxes with souvenirs (IOI15_boxes)C++14
10 / 100
72 ms508 KiB

#include "boxes.h"
#include <bits/stdc++.h>
#define ll long long
using namespace std;
const ll MX = 1e18+9;

ll delivery(int n, int k, int l, int p[]) {

    ll ret = MX;
    sort(p,p+n);

    for(int i=-1;i<n;i++){
        ll tmp=0,cnt=0;
        vector<ll> dir1,dir2;

        for(int j=0;j<=i;j++)
            dir1.push_back(p[j]);

        for(int j=n-1;j>i;j--)
            dir2.push_back(l-p[j]);

        sort(dir1.begin(),dir1.end());
        sort(dir2.begin(),dir2.end());

        for(int j=dir1.size()-1;j>=0;j--){
            if(cnt == 0)
                tmp+=2ll*dir1[j];
            cnt++;
            cnt %= k;
        }
        cnt = 0;
        for(int j=dir2.size()-1;j>=0;j--){
            if(cnt == 0)
                tmp+= 2ll*dir2[j];
            cnt++;
            cnt %= k;
        }
        ret = min(ret , tmp);
    }
    reverse(p,p+n);
    for(int i=-1;i<n;i++){
        ll tmp=0,cnt=0;
        vector<ll> dir1,dir2;

        for(int j=0;j<=i;j++)
            dir1.push_back(p[j]);

        for(int j=n-1;j>i;j--)
            dir2.push_back(l-p[j]);

        sort(dir1.begin(),dir1.end());
        sort(dir2.begin(),dir2.end());

        for(int j=dir1.size()-1;j>=0;j--){
            if(cnt == 0)
                tmp+=2ll*dir1[j];
            cnt++;
            cnt %= k;
        }
        cnt = 0;
        for(int j=dir2.size()-1;j>=0;j--){
            if(cnt == 0)
                tmp+= 2ll*dir2[j];
            cnt++;
            cnt %= k;
        }
        ret = min(ret , tmp);
    }
    return ret;
}

Compilation message (stderr)

boxes.cpp: In function 'long long int delivery(int, int, int, int*)':
boxes.cpp:26:30: warning: conversion to 'int' from 'std::vector<long long int>::size_type {aka long unsigned int}' may alter its value [-Wconversion]
         for(int j=dir1.size()-1;j>=0;j--){
                   ~~~~~~~~~~~^~
boxes.cpp:33:30: warning: conversion to 'int' from 'std::vector<long long int>::size_type {aka long unsigned int}' may alter its value [-Wconversion]
         for(int j=dir2.size()-1;j>=0;j--){
                   ~~~~~~~~~~~^~
boxes.cpp:55:30: warning: conversion to 'int' from 'std::vector<long long int>::size_type {aka long unsigned int}' may alter its value [-Wconversion]
         for(int j=dir1.size()-1;j>=0;j--){
                   ~~~~~~~~~~~^~
boxes.cpp:62:30: warning: conversion to 'int' from 'std::vector<long long int>::size_type {aka long unsigned int}' may alter its value [-Wconversion]
         for(int j=dir2.size()-1;j>=0;j--){
                   ~~~~~~~~~~~^~
#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...