Submission #809179

# Submission time Handle Problem Language Result Execution time Memory
809179 2023-08-05T19:57:20 Z OAleksa Dreaming (IOI13_dreaming) C++14
0 / 100
36 ms 13152 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;
  int ans = 0;
 	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;
 				}
 			}
 			ans = max(ans, mx);
 			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) 
 		ans = max(ans, r.front());
 	else if(r.size() == 2)
 		ans - max(ans, r[0] + r[1] + L);
 	else
 		ans = max(ans, max(r[0] + r[1] + L, r[1] + r[2] + 2 * L));
 	return ans;
}
 
//  
// 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;
// }

Compilation message

dreaming.cpp: In function 'int travelTime(int, int, int, int*, int*, int*)':
dreaming.cpp:77:8: warning: value computed is not used [-Wunused-value]
   77 |    ans - max(ans, r[0] + r[1] + L);
      |    ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 32 ms 13152 KB Output is correct
2 Correct 36 ms 13104 KB Output is correct
3 Correct 22 ms 9776 KB Output is correct
4 Correct 6 ms 5204 KB Output is correct
5 Correct 5 ms 4564 KB Output is correct
6 Correct 9 ms 5844 KB Output is correct
7 Incorrect 2 ms 3796 KB Output isn't correct
8 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 3796 KB Output is correct
2 Correct 2 ms 3796 KB Output is correct
3 Incorrect 2 ms 3796 KB Output isn't correct
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 32 ms 13152 KB Output is correct
2 Correct 36 ms 13104 KB Output is correct
3 Correct 22 ms 9776 KB Output is correct
4 Correct 6 ms 5204 KB Output is correct
5 Correct 5 ms 4564 KB Output is correct
6 Correct 9 ms 5844 KB Output is correct
7 Incorrect 2 ms 3796 KB Output isn't correct
8 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 15 ms 6488 KB Output is correct
2 Correct 17 ms 6560 KB Output is correct
3 Correct 17 ms 6448 KB Output is correct
4 Correct 16 ms 6484 KB Output is correct
5 Correct 16 ms 6484 KB Output is correct
6 Correct 18 ms 6880 KB Output is correct
7 Correct 17 ms 6648 KB Output is correct
8 Correct 15 ms 6484 KB Output is correct
9 Correct 18 ms 6496 KB Output is correct
10 Correct 17 ms 6620 KB Output is correct
11 Correct 2 ms 3796 KB Output is correct
12 Correct 6 ms 4432 KB Output is correct
13 Correct 6 ms 4432 KB Output is correct
14 Correct 6 ms 4432 KB Output is correct
15 Correct 6 ms 4432 KB Output is correct
16 Correct 6 ms 4432 KB Output is correct
17 Correct 6 ms 4432 KB Output is correct
18 Correct 6 ms 4432 KB Output is correct
19 Correct 6 ms 4432 KB Output is correct
20 Correct 2 ms 3796 KB Output is correct
21 Incorrect 2 ms 3796 KB Output isn't correct
22 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 3796 KB Output is correct
2 Correct 2 ms 3796 KB Output is correct
3 Incorrect 2 ms 3796 KB Output isn't correct
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 32 ms 13152 KB Output is correct
2 Correct 36 ms 13104 KB Output is correct
3 Correct 22 ms 9776 KB Output is correct
4 Correct 6 ms 5204 KB Output is correct
5 Correct 5 ms 4564 KB Output is correct
6 Correct 9 ms 5844 KB Output is correct
7 Incorrect 2 ms 3796 KB Output isn't correct
8 Halted 0 ms 0 KB -