133772025-01-07 17:50:16GervidZebra (75 pont)cpp17Időlimit túllépés 0/75800ms504 KiB
#include <iostream>
#include <vector>
#include <limits.h>
#include <algorithm>
#include <array>

using namespace std;

vector<array<int, 2>> p;

int dfs(int i, int cost, int waiting, bool null, bool one)
{
	null |= (p[i][1] == 0);
	one |= (p[i][1] == 1);

	if (i == p.size() - 1)
	{
		if (null && one) return cost;
		else return INT_MAX;
	}
	int minv = dfs(i+1, cost + (waiting+1) * (p[i+1][0] - p[i][0]), waiting + 1, null, one);
	if (null && one)
	{
		minv = min(minv, dfs(i + 1, cost, 0, false, false));
	}
	return minv;
}

int main()
{
	iostream::sync_with_stdio(false);
	cin.tie(0);

	int n, i;
	cin >> n;

	p.resize(n);
	for (i = 0; i < n; i++) cin >> p[i][1];
	for (i = 0; i < n; i++) cin >> p[i][0];

	sort(p.begin(), p.end());

	cout << dfs(1, p[1][0] - p[0][0], 1, p[0][1] == 0, p[0][1] == 1);
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base0/75
1Elfogadva0/01ms316 KiB
2Időlimit túllépés0/0785ms316 KiB
3Hibás válasz0/51ms316 KiB
4Hibás válasz0/51ms316 KiB
5Hibás válasz0/51ms316 KiB
6Hibás válasz0/51ms316 KiB
7Hibás válasz0/51ms316 KiB
8Hibás válasz0/51ms316 KiB
9Hibás válasz0/51ms316 KiB
10Hibás válasz0/51ms316 KiB
11Időlimit túllépés0/5800ms504 KiB
12Időlimit túllépés0/5800ms316 KiB
13Időlimit túllépés0/5800ms316 KiB
14Időlimit túllépés0/5791ms316 KiB
15Időlimit túllépés0/5774ms316 KiB
16Időlimit túllépés0/5774ms500 KiB
17Időlimit túllépés0/5776ms316 KiB