Submission #788002

# Submission time Handle Problem Language Result Execution time Memory
788002 2023-07-19T15:59:34 Z allin27x Dreaming (IOI13_dreaming) C++17
18 / 100
119 ms 44352 KB
#include <bits/stdc++.h>
using namespace std;
#include "dreaming.h"
#define int long long

int ds[2][(int)1e5];
unordered_map<int,int> adj[(int)1e5];
int vis[(int)1e5];
int ind = 0;
unordered_set<int> sets[(int)1e5];
int cp[(int)1e5];

void dfs(int i , int p, int len, int x){
	sets[ind].insert(i);
	vis[i] = 1;
	ds[x][i] = len;
	for (auto const &pair: adj[i]){
		int c = pair.first; int w= pair.second;
		if (c==p) continue;
		dfs(c,i, len+w,x);
	}
}

signed travelTime(signed N, signed M, signed L, signed A[], signed B[], signed T[]){
	for (int i=0; i<M; i++){
		int a = A[i]; int b = B[i];
		adj[a][b] = T[i]; adj[b][a] = T[i];
	}
	int r;
	for (int i=0; i<N; i++){
		if (vis[i]) continue;
		dfs(i,i,0,0);
		int a1 = i;
		for (auto c: sets[ind]){
			if (ds[0][c]>ds[0][a1]) a1 = c;
		}
		dfs(a1,a1,0,0);
		int a2 = a1;
		r = a1;
		for (auto c: sets[ind]){
			if (ds[0][c]>ds[0][a2]) a2 = c;
		}
		dfs(a2,a2,0,1);
		int ans = 1e7;
		for (auto c: sets[ind]){
			ans = min(ans, max(ds[0][c], ds[1][c]));
		}
		if (ans!=1e7) cp[ind] = ans; else cp[ind] = 0;
		ind++;
	}
	if (ind == 1){
		return ds[1][r];
	}
	sort(cp, cp+ind);
	if (ind ==2 ) return L + cp[ind-1] + cp[ind-2];
	return max(L + cp[ind-1] + cp[ind-2], 2*L + cp[ind-2] + cp[ind-3]);
}

// int main(){
// 	int n = 12; int m = 8 ;
// 	int l = 2;
// 	int a[] = {0, 8, 2, 5, 5, 1, 1, 10};
// 	int b[] = {8, 2, 7, 11, 1, 3, 9, 6};
// 	int t[] = {4, 2, 4, 3, 7, 1, 5, 3};
// 	cout<<travelTime(n,m,l,a,b,t);
// }

Compilation message

dreaming.cpp: In function 'int travelTime(int, int, int, int*, int*, int*)':
dreaming.cpp:52:17: warning: 'r' may be used uninitialized in this function [-Wmaybe-uninitialized]
   52 |   return ds[1][r];
      |          ~~~~~~~^
# Verdict Execution time Memory Grader output
1 Incorrect 119 ms 44352 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 7 ms 11320 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 119 ms 44352 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 54 ms 32840 KB Output is correct
2 Correct 63 ms 33152 KB Output is correct
3 Correct 56 ms 32844 KB Output is correct
4 Correct 56 ms 32904 KB Output is correct
5 Correct 54 ms 32740 KB Output is correct
6 Correct 70 ms 34156 KB Output is correct
7 Correct 62 ms 33876 KB Output is correct
8 Correct 55 ms 32460 KB Output is correct
9 Correct 70 ms 32316 KB Output is correct
10 Correct 63 ms 33608 KB Output is correct
11 Correct 5 ms 11220 KB Output is correct
12 Correct 31 ms 28496 KB Output is correct
13 Correct 32 ms 28492 KB Output is correct
14 Correct 31 ms 28444 KB Output is correct
15 Correct 31 ms 28456 KB Output is correct
16 Correct 31 ms 28420 KB Output is correct
17 Correct 33 ms 28444 KB Output is correct
18 Correct 31 ms 28532 KB Output is correct
19 Correct 35 ms 28440 KB Output is correct
20 Correct 6 ms 11284 KB Output is correct
21 Correct 6 ms 11220 KB Output is correct
22 Correct 6 ms 11820 KB Output is correct
23 Correct 31 ms 28496 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 7 ms 11320 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 119 ms 44352 KB Output isn't correct
2 Halted 0 ms 0 KB -