Submission #640209

#TimeUsernameProblemLanguageResultExecution timeMemory
640209ymmBoxes with souvenirs (IOI15_boxes)C++17
10 / 100
1 ms300 KiB
#include "boxes.h"
#include <bits/stdc++.h>
#define Loop(x,l,r) for (ll x = (l); x < (r); ++x)
#define LoopR(x,l,r) for (ll x = (r)-1; x >= (l); --x)
typedef long long ll;
typedef std::pair<int, int> pii;
typedef std::pair<ll , ll > pll;
using namespace std;

static vector<int> a, b;

static ll calc(vector<int> &v, int st, int k)
{
	ll ans = 0;
	for (int i = st; i < v.size(); i += k) {
		ans += v[i];
		ans += v[i];
	}
	return ans;
}

long long delivery(int N, int K, int L, int p[])
{
	Loop (i,0,N) {
		if (p[i] < L-p[i])
			a.push_back(p[i]);
		else
			b.push_back(L-p[i]);
	}
	reverse(a.begin(), a.end());
	ll ans = calc(a, 0, K) + calc(b, 0, K);
	Loop (i,1,K)
		ans = min(ans, calc(a, i, K) + calc(b, K-i, K) + L + L);
	return ans;
}

Compilation message (stderr)

boxes.cpp: In function 'll calc(std::vector<int>&, int, int)':
boxes.cpp:15:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   15 |  for (int i = st; i < v.size(); i += k) {
      |                   ~~^~~~~~~~~~
boxes.cpp: In function 'long long int delivery(int, int, int, int*)':
boxes.cpp:33:26: warning: conversion from 'll' {aka 'long long int'} to 'int' may change value [-Wconversion]
   33 |   ans = min(ans, calc(a, i, K) + calc(b, K-i, K) + L + L);
      |                          ^
boxes.cpp:33:43: warning: conversion from 'll' {aka 'long long int'} to 'int' may change value [-Wconversion]
   33 |   ans = min(ans, calc(a, i, K) + calc(b, K-i, K) + L + L);
      |                                          ~^~
#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...