Submission #1301826

#TimeUsernameProblemLanguageResultExecution timeMemory
1301826nicolo_010Boxes with souvenirs (IOI15_boxes)C++20
10 / 100
1 ms576 KiB
#include <bits/stdc++.h>
#include "boxes.h"
using namespace std;
using ll = long long;
using pii = pair<int, int>;

ll delivery(int n, int k, int L, int* pos) {
	ll ans=0;
	int l=0, r=n-1;
	int idx=0;
	int cnt=0;
	while (l <= r) {
		ll costl;
		if (idx <= pos[l]) costl = pos[l]-idx;
		else costl = idx+pos[l];
		ll costr;
		if (idx >= pos[r]) costr = idx-pos[r];
		else costr = idx+L-pos[r];
		//cout << l << " " << r << " " << costl << " " << costr << " " << ans << endl;
		cnt++;
		if (costl <= costr) {
			idx = pos[l];
			l++;
			ans += costl;
		}
		else {
			idx = pos[r];
			r--;
			ans += costr;
		}
		if (cnt == k) {
			ans += min(abs(idx), abs(L-idx));
			idx=0;
		}
	}
	ans += min(abs(idx), abs(L-idx));
	return ans;
}
#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...