Submission #17274

#TimeUsernameProblemLanguageResultExecution timeMemory
17274erdemkirazBoxes with souvenirs (IOI15_boxes)C++98
100 / 100
565 ms171548 KiB
#include <bits/stdc++.h>

using namespace std;

#define type(x) __typeof((x).begin())
#define foreach(it, x) for(type(x) it = (x).begin(); it != (x).end(); it++)
typedef long long ll;
typedef pair < int, int > ii;

const int inf = 1e9 + 333;
const ll linf = 1e18 + inf;

#include "boxes.h"

vector < ll > l, r;

long long delivery(int N, int k, int L, int p[]) {
	for(int i = 0; i < N; i++) {
		if(p[i] <= L / 2)
			l.push_back(p[i] * 2);
		else
			r.push_back(L * 2 - p[i] * 2);
	}
	reverse(r.begin(), r.end());
	for(int i = k; i < l.size(); i++)
		l[i] = l[i - k] + l[i];
	for(int i = k; i < r.size(); i++)
		r[i] = r[i - k] + r[i];
	ll ans = linf;
	for(int i = 0; i <= k; i++) {
		int x = i;
		int y = k - i;
		ans = min(ans, (x < l.size() ? l[l.size() - 1 - x] : 0) + (y < r.size() ?  r[r.size() - 1 - y] : 0) + L);
	}
	return min(ans, (l.size() ? l.back() : 0) + (r.size() ? r.back() : 0));
}

Compilation message (stderr)

boxes.cpp: In function 'long long int delivery(int, int, int, int*)':
boxes.cpp:25:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i = k; i < l.size(); i++)
                 ~~^~~~~~~~~~
boxes.cpp:27:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i = k; i < r.size(); i++)
                 ~~^~~~~~~~~~
boxes.cpp:33:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   ans = min(ans, (x < l.size() ? l[l.size() - 1 - x] : 0) + (y < r.size() ?  r[r.size() - 1 - y] : 0) + L);
                   ~~^~~~~~~~~~
boxes.cpp:33:64: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   ans = min(ans, (x < l.size() ? l[l.size() - 1 - x] : 0) + (y < r.size() ?  r[r.size() - 1 - y] : 0) + 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...