Submission #160808

#TimeUsernameProblemLanguageResultExecution timeMemory
160808GioChkhaidzeBoxes with souvenirs (IOI15_boxes)C++14
100 / 100
673 ms372380 KiB
#include <bits/stdc++.h>
#include "boxes.h"
using namespace std;
const int N=2e7+5;
long long n,k,l,x,ANS,a[N],Dl[N],Dr[N];

long long delivery(int N, int K, int L, int p[]) {
	n=N,k=K,l=L;
	
	if (n==k) ANS=l;
		 else ANS=1e18;

	for (int i=1; i<=n; i++) {
		a[i]=p[i-1];
		int last=i-k;
		if (1<=last) Dl[i]=Dl[last]+a[i]*2;
				else Dl[i]=a[i]*2;		
	}
	
	for (int i=n; i>=1; i--) {
		int last=i+k;
		if (last<=n) Dr[i]=Dr[last]+(l-a[i])*2;
			    else Dr[i]=(l-a[i])*2;		
	}

	ANS=min(ANS,Dl[n]);
	ANS=min(ANS,Dr[1]);
	for (int i=0; i<n; i++) {
		ANS=min(ANS,Dl[i]+Dr[i+1]);
		ANS=min(ANS,l+Dl[i]+Dr[i+k+1]);
	}

    return ANS;
}

Compilation message (stderr)

boxes.cpp: In function 'long long int delivery(int, int, int, int*)':
boxes.cpp:7:48: warning: declaration of 'N' shadows a global declaration [-Wshadow]
 long long delivery(int N, int K, int L, int p[]) {
                                                ^
boxes.cpp:4:11: note: shadowed declaration is here
 const int N=2e7+5;
           ^
boxes.cpp:15:13: warning: conversion to 'int' from 'long long int' may alter its value [-Wconversion]
   int last=i-k;
            ~^~
boxes.cpp:20:13: warning: conversion to 'int' from 'long long int' may alter its value [-Wconversion]
  for (int i=n; i>=1; i--) {
             ^
boxes.cpp:21:13: warning: conversion to 'int' from 'long long int' may alter its value [-Wconversion]
   int last=i+k;
            ~^~
#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...