Submission #809155

# Submission time Handle Problem Language Result Execution time Memory
809155 2023-08-05T19:32:33 Z OAleksa Dreaming (IOI13_dreaming) C++14
0 / 100
32 ms 13136 KB
#include <bits/stdc++.h>
#include "dreaming.h"
 
#define f first
#define s second
using namespace std; 
const int maxn = 1e5 + 69;
vector<pair<int, int>> g[maxn];
vector<int> vis(maxn);
vector<int> d(maxn), par(maxn);
vector<int> t;
void dfs(int v, int p) {
	vis[v] = true;
	t.push_back(v);
	par[v] = p;
	for(auto u : g[v]) {
		if(u.f != p) {
			d[u.f] = d[v] + u.s;
			dfs(u.f, v);
		}
	}
}
 
int find_minmax(vector<int> &v, int dija)	{
	//v->cvorovi koji cine dijametar stabla
	int mn = 1e9;
	for(auto x : v) {
		int y = max(d[x], dija - d[x]);
		mn = min(y, mn);
	}
	return mn;
}
 
 
int travelTime(int N, int M, int L, int A[], int B[], int T[]) {
  for(int i = 0;i < M;i++) {
  	g[A[i]].push_back({B[i], T[i]});
  	g[B[i]].push_back({A[i], T[i]});
  }
  vector<int> r;
 	for(int i = 0;i < N;i++) {
 		if(!vis[i]) {
 			t.clear();
 			dfs(i, -1);
 			int s, mx = 0;
 			for(auto x : t) {
 				if(d[x] >= mx) {
 					mx = d[x];
 					s = x;
 				}
 			}
 			t.clear();
 			d[s] = 0;
 			dfs(s, -1);
 			mx = 0;
 			for(auto x : t) {
 				if(d[x] >= mx) {
 					mx = d[x];
 					s = x;
 				}
 			}
 			vector<int> c;
 			while(s != -1) {
 				c.push_back(s);
 				s = par[s];
 			}
 			r.push_back(find_minmax(c, mx));
 		}
 	}
 	sort(r.begin(), r.end());
 	reverse(r.begin(), r.end());
 	if(r.size() == 1) 
 		return r.front();
 	else
 		return r[0] + r[1] + L;
}
 
//  
// int main()
// {
	  // ios_base::sync_with_stdio(false);
	  // cin.tie(0);
	  // cout.tie(0);
	  // int tt = 1;
		// //cin >> tt;
	  // while(tt--) {
			// int n, m, l;
			// cin >> n >> m >> l;
			// int a[m], b[m], t[m];
			// for(int i = 0;i < m;i++) 
				// cin >> a[i] >> b[i] >> t[i];
			// cout << travelTime(n, m, l, a, b, t);
		// }
    // return 0;
// }
# Verdict Execution time Memory Grader output
1 Incorrect 32 ms 13136 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 3796 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 32 ms 13136 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 16 ms 6480 KB Output is correct
2 Incorrect 17 ms 6500 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 3796 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 32 ms 13136 KB Output isn't correct
2 Halted 0 ms 0 KB -