This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |