19022022-12-08 13:30:11peterRendőrségi Üldözés 4cpp17Elfogadva 100/100606ms238644 KiB
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>

int varakozas(int ido, int periodus)
{
	int ret = 2 * periodus - (ido % (2 * periodus)) <= periodus ? 2 * periodus - (ido % (2 * periodus)) : 0;
	return ret;
}



int main()
{
	int n, r, t, l;
	scanf("%d %d %d %d", &n, &r, &t, &l);

	int* x = (int*)malloc(sizeof(int) * (n + 1));
	x[0] = 0;
	for (int i = 1; i < n + 1; i++)
	{
		scanf("%d", &x[i]);
	}

	int** sols = (int**)malloc(sizeof(int*) * (r + 1));
	for (int i = 0; i < r + 1; i++)
	{
		sols[i] = (int*)malloc(sizeof(int) * (n + 1));
		sols[i][0] = 0;
	}

	for (int i = 1; i < n + 1; i++)
	{
		sols[0][i] = sols[0][i - 1] + x[i] - x[i - 1] + varakozas(sols[0][i - 1] + x[i] - x[i - 1], t);
	}
	for (int i = 1; i < r + 1; i++)
	{
		for (int j = 1; j < n + 1; j++)
		{
			int var = sols[i][j - 1] + x[j] - x[j - 1] + varakozas(sols[i][j - 1] + x[j] - x[j - 1], t);
			int atmegy = sols[i - 1][j - 1] + x[j] - x[j - 1];
			sols[i][j] = var < atmegy ? var : atmegy;
		}
	}


	
	printf("%d", sols[r][n] + l - x[n]);
	
	free(x);
	for (int i = 0; i < r + 1; i++)
	{
		free(sols[i]);
	}
	free(sols);
	return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms1236 KiB
2Elfogadva2ms1560 KiB
subtask210/10
3Elfogadva2ms1604 KiB
4Elfogadva2ms1808 KiB
5Elfogadva2ms2056 KiB
6Elfogadva2ms2308 KiB
7Elfogadva2ms2472 KiB
subtask315/15
8Elfogadva2ms2332 KiB
9Elfogadva2ms2400 KiB
10Elfogadva2ms2372 KiB
11Elfogadva2ms2556 KiB
subtask415/15
12Elfogadva2ms2852 KiB
13Elfogadva2ms2792 KiB
14Elfogadva2ms2612 KiB
15Elfogadva2ms2768 KiB
subtask525/25
16Elfogadva2ms2884 KiB
17Elfogadva2ms2816 KiB
18Elfogadva2ms3172 KiB
19Elfogadva2ms3120 KiB
20Elfogadva2ms3308 KiB
subtask615/15
21Elfogadva2ms2916 KiB
22Elfogadva2ms3312 KiB
23Elfogadva2ms3408 KiB
24Elfogadva2ms3500 KiB
25Elfogadva3ms3788 KiB
subtask720/20
26Elfogadva9ms6076 KiB
27Elfogadva24ms11564 KiB
28Elfogadva64ms27296 KiB
29Elfogadva210ms82132 KiB
30Elfogadva606ms238644 KiB