55002023-07-01 22:56:03AndrosVillanyautócpp17Hibás válasz 20/6037ms5024 KiB
#include <iostream>

using namespace std;

int n, m, k;
#define Infi 1000000000
#define maxN 150

long long T[maxN][maxN];//Mennyi kapacitással lehet eljutni i-bõl j-be?
long long X[maxN][maxN];
void debug(long long A[maxN][maxN]) {
	for (int i = 1; i <= n; i++)
	{
		for (int j = i + 1; j <= n; j++)
		{
			cout << i << "," << j << "\t" << T[i][j] << endl;
		}
	}
}

void egy_toltessel_tobb(long long A[maxN][maxN]) {

	for (int i = 1; i <= n; i++)
	{
		for (int j = i + 1; j <= n; j++)
		{
			X[i][j] = Infi;//Az elején "resetelem"
			//Ha egy másik élen megyek úgy, hogy töltök ott.
			for (int u = 1; u <= n; u++)
			{
				long long temp = min(X[i][j], max(A[i][u], A[u][j]));
				X[i][j] = temp;
				X[j][i] = temp;
			}
		}
	}
	//Átmásolás
	for (int i = 1; i <= n; i++)
	{
		X[i][i] = 0;
		for (int j = 1; j <= n; j++)
		{
			A[i][j] = X[i][j];
		}
	}
}

int main()
{
	cin >> n >> m >> k;
	//Gráf init
	for (int i = 1; i <= n; i++)
	{
		for (int j = 1; j <= n; j++)
		{
			T[i][j] = Infi;
		}
	}

	//Élek felvevése
	int bal, jobb, hossz;
	for (int i = 0; i < m; i++)
	{
		cin >> bal >> jobb >> hossz;
		T[bal][jobb] = hossz;
		T[jobb][bal] = hossz;
	}

	//Magába 0
	for (int i = 1; i <= n; i++)
	{
		T[i][i] = 0;
	}

	//Legrövidebb utak felépítése fekete mágiával
	for (int k = 1; k <= n; k++)
	{
		for (int i = 1; i <= n; i++)
		{
			for (int j = 1; j <= n; j++) {
				T[i][j] = min(T[i][j], T[i][k] + T[k][j]);
			}
		}
	}
	//Ha egyszer se tud tölteni az autó, akkor a leghosszabb élt meg kell tennie.

	//Ennyiszer lehet azt mondani, hogy még felhasználhatsz egy töltést
	for (int i = 1; i < k; i++)
	{
		egy_toltessel_tobb(T);
	}
	long long a = 0;
	for (int i = 1; i <= n; i++)
	{
		for (int j = i + 1; j <= n; j++)
		{
			a = max(a, T[i][j]);
		}
	}
	cout << a;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base20/60
1Elfogadva0/03ms1896 KiB
2Elfogadva0/017ms2532 KiB
3Hibás válasz0/13ms2508 KiB
4Elfogadva1/13ms2772 KiB
5Elfogadva1/14ms2896 KiB
6Hibás válasz0/24ms3172 KiB
7Elfogadva2/24ms3248 KiB
8Elfogadva2/27ms3348 KiB
9Elfogadva1/13ms3604 KiB
10Hibás válasz0/14ms3568 KiB
11Hibás válasz0/14ms3804 KiB
12Hibás válasz0/28ms4260 KiB
13Hibás válasz0/216ms4216 KiB
14Hibás válasz0/213ms4212 KiB
15Elfogadva3/37ms4232 KiB
16Hibás válasz0/310ms4232 KiB
17Hibás válasz0/23ms4004 KiB
18Hibás válasz0/24ms4008 KiB
19Hibás válasz0/24ms4008 KiB
20Hibás válasz0/24ms4132 KiB
21Elfogadva2/24ms4460 KiB
22Elfogadva2/23ms4364 KiB
23Hibás válasz0/314ms4964 KiB
24Hibás válasz0/318ms4720 KiB
25Hibás válasz0/337ms4996 KiB
26Hibás válasz0/326ms5024 KiB
27Elfogadva3/320ms4964 KiB
28Hibás válasz0/313ms4916 KiB
29Hibás válasz0/39ms4760 KiB
30Elfogadva3/323ms4760 KiB