Submission #101885

# Submission time Handle Problem Language Result Execution time Memory
101885 2019-03-20T17:41:29 Z pedro_sponchiado Boxes with souvenirs (IOI15_boxes) C++17
Compilation error
0 ms 0 KB
#include<bits/stdc++.h>
using namespace std;
const int maxn=10000010;
const long long int INF=112345678912345678;

long long int resp=INF;
long long int pos[maxn];
vector<long long int> dist[2];


long long int mini[maxn][2];
long long int aux[maxn][2];
long long int x[maxn];

long long delivery(int n, int s, long long int l, long long int pos[]) {

	scanf("%d %d %d", &n, &s, &l);
	for(int i=0; i<n; i++){
		scanf("%lld", &pos[i]);
		if(pos[i]<l/2) dist[0].push_back(pos[i]);
		if(pos[i]>l/2) dist[1].push_back(l-pos[i]);
	}

	//calcula mini
	for(int k=0; k<=1; k++){

		for(int i=0; i<dist[k].size(); i++){
			aux[i%s][k]+=dist[k][i];
			mini[i+1][k]=aux[i%s][k];
		}
		for(int i=dist[k].size(); i<=n; i++) mini[i+1][k]=INF;
	}

	//calcula x
	for(int i=1; i<=n; i++){
		x[i]=INF;
		for(int k=0; k<=i; k++){
			x[i]=min(x[i], mini[k][0]+mini[i-k][1]);
		}
	}

	//calcula resp
	for(int k=0; k<=n; k++){
		if(n-k*s>=0) resp=min(resp, x[n-k*s]+k*l);
		else resp=min(resp, k*l);
	}
	
	printf("%lld\n", 2*resp);
	return 0;
}

Compilation message

boxes.cpp: In function 'long long int delivery(int, int, long long int, long long int*)':
boxes.cpp:15:70: warning: declaration of 'pos' shadows a global declaration [-Wshadow]
 long long delivery(int n, int s, long long int l, long long int pos[]) {
                                                                      ^
boxes.cpp:7:15: note: shadowed declaration is here
 long long int pos[maxn];
               ^~~
boxes.cpp:17:30: warning: format '%d' expects argument of type 'int*', but argument 4 has type 'long long int*' [-Wformat=]
  scanf("%d %d %d", &n, &s, &l);
                            ~~^
boxes.cpp:27:17: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for(int i=0; i<dist[k].size(); i++){
                ~^~~~~~~~~~~~~~~
boxes.cpp:31:25: warning: conversion to 'int' from 'std::vector<long long int>::size_type {aka long unsigned int}' may alter its value [-Wconversion]
   for(int i=dist[k].size(); i<=n; i++) mini[i+1][k]=INF;
             ~~~~~~~~~~~~^~
boxes.cpp:17:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d %d %d", &n, &s, &l);
  ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
boxes.cpp:19:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%lld", &pos[i]);
   ~~~~~^~~~~~~~~~~~~~~~~
/tmp/ccgDNwKA.o: In function `main':
grader.c:(.text.startup+0x22f): undefined reference to `delivery(int, int, int, int*)'
collect2: error: ld returned 1 exit status