답안 #1076139

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1076139 2024-08-26T11:23:28 Z Abito Simurgh (IOI17_simurgh) C++17
30 / 100
1727 ms 1972 KB
#include "simurgh.h"
#include <bits/stdc++.h>
#define pb push_back
#define ask count_common_roads
using namespace std;
const int N=3e4+5;
int par[N],sz[N];
bool in[N],know[N];
int getpar(int x){
	if (x==par[x]) return x;
	return par[x]=getpar(par[x]);
}
bool link(int x,int y){
	x=getpar(x);
	y=getpar(y);
	if (x==y) return 0;
	if (sz[x]>sz[y]) swap(x,y);
	sz[y]+=sz[x];
	par[x]=y;
	return 1;
}
std::vector<int> find_roads(int n, std::vector<int> u, std::vector<int> v) {
	int m=u.size();
	for (int i=0;i<m;i++) u[i]++,v[i]++;
	for (int i=1;i<=n;i++) sz[i]=1,par[i]=i;
	vector<int> r;
	for (int i=0;i<m;i++){
		if (link(u[i],v[i])) r.pb(i),in[i]=1;
	}
	int ans=ask(r);
	while (ans<n-1){
		bool op=0;
		for (int i=0;i<n-1 && !op;i++){
			if (know[r[i]]) continue;
			for (int j=0;j<m && !op;j++){
				if (in[j] || know[j]) continue;
				vector<int> t;
				for (int k=0;k<n-1;k++){
					if (k==i) continue;
					t.pb(r[k]);
				}
				t.pb(j);
				for (int i=1;i<=n;i++) sz[i]=1,par[i]=i;
				int tree=0;
				for (auto x:t) tree+=link(u[x],v[x]);
				if (tree!=n-1) continue;
				int h=ask(t);
				if (h<=ans){
					if (h<ans) know[r[i]]=1,know[j]=1;
					continue;
				}
				know[r[i]]=1,know[j]=1;
				ans=h;
				swap(r,t);
				op=1;
				break;
			}
		}
	}
	return r;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB correct
2 Correct 0 ms 348 KB correct
3 Correct 0 ms 348 KB correct
4 Correct 1 ms 348 KB correct
5 Correct 0 ms 348 KB correct
6 Correct 0 ms 348 KB correct
7 Correct 0 ms 348 KB correct
8 Correct 0 ms 348 KB correct
9 Correct 0 ms 348 KB correct
10 Correct 0 ms 348 KB correct
11 Correct 1 ms 348 KB correct
12 Correct 1 ms 344 KB correct
13 Correct 0 ms 348 KB correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB correct
2 Correct 0 ms 348 KB correct
3 Correct 0 ms 348 KB correct
4 Correct 1 ms 348 KB correct
5 Correct 0 ms 348 KB correct
6 Correct 0 ms 348 KB correct
7 Correct 0 ms 348 KB correct
8 Correct 0 ms 348 KB correct
9 Correct 0 ms 348 KB correct
10 Correct 0 ms 348 KB correct
11 Correct 1 ms 348 KB correct
12 Correct 1 ms 344 KB correct
13 Correct 0 ms 348 KB correct
14 Correct 13 ms 344 KB correct
15 Correct 11 ms 348 KB correct
16 Correct 11 ms 348 KB correct
17 Correct 8 ms 348 KB correct
18 Correct 3 ms 348 KB correct
19 Correct 5 ms 464 KB correct
20 Correct 7 ms 348 KB correct
21 Correct 10 ms 344 KB correct
22 Correct 0 ms 348 KB correct
23 Correct 0 ms 348 KB correct
24 Correct 0 ms 348 KB correct
25 Correct 0 ms 348 KB correct
26 Correct 1 ms 348 KB correct
27 Correct 0 ms 348 KB correct
28 Correct 0 ms 348 KB correct
29 Correct 0 ms 348 KB correct
30 Correct 0 ms 348 KB correct
31 Correct 0 ms 348 KB correct
32 Correct 0 ms 348 KB correct
33 Correct 1 ms 348 KB correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB correct
2 Correct 0 ms 348 KB correct
3 Correct 0 ms 348 KB correct
4 Correct 1 ms 348 KB correct
5 Correct 0 ms 348 KB correct
6 Correct 0 ms 348 KB correct
7 Correct 0 ms 348 KB correct
8 Correct 0 ms 348 KB correct
9 Correct 0 ms 348 KB correct
10 Correct 0 ms 348 KB correct
11 Correct 1 ms 348 KB correct
12 Correct 1 ms 344 KB correct
13 Correct 0 ms 348 KB correct
14 Correct 13 ms 344 KB correct
15 Correct 11 ms 348 KB correct
16 Correct 11 ms 348 KB correct
17 Correct 8 ms 348 KB correct
18 Correct 3 ms 348 KB correct
19 Correct 5 ms 464 KB correct
20 Correct 7 ms 348 KB correct
21 Correct 10 ms 344 KB correct
22 Correct 0 ms 348 KB correct
23 Correct 0 ms 348 KB correct
24 Correct 0 ms 348 KB correct
25 Correct 0 ms 348 KB correct
26 Correct 1 ms 348 KB correct
27 Correct 0 ms 348 KB correct
28 Correct 0 ms 348 KB correct
29 Correct 0 ms 348 KB correct
30 Correct 0 ms 348 KB correct
31 Correct 0 ms 348 KB correct
32 Correct 0 ms 348 KB correct
33 Correct 1 ms 348 KB correct
34 Incorrect 1642 ms 1108 KB WA in grader: NO
35 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB correct
2 Correct 0 ms 348 KB correct
3 Incorrect 1727 ms 1972 KB WA in grader: NO
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB correct
2 Correct 0 ms 348 KB correct
3 Correct 0 ms 348 KB correct
4 Correct 1 ms 348 KB correct
5 Correct 0 ms 348 KB correct
6 Correct 0 ms 348 KB correct
7 Correct 0 ms 348 KB correct
8 Correct 0 ms 348 KB correct
9 Correct 0 ms 348 KB correct
10 Correct 0 ms 348 KB correct
11 Correct 1 ms 348 KB correct
12 Correct 1 ms 344 KB correct
13 Correct 0 ms 348 KB correct
14 Correct 13 ms 344 KB correct
15 Correct 11 ms 348 KB correct
16 Correct 11 ms 348 KB correct
17 Correct 8 ms 348 KB correct
18 Correct 3 ms 348 KB correct
19 Correct 5 ms 464 KB correct
20 Correct 7 ms 348 KB correct
21 Correct 10 ms 344 KB correct
22 Correct 0 ms 348 KB correct
23 Correct 0 ms 348 KB correct
24 Correct 0 ms 348 KB correct
25 Correct 0 ms 348 KB correct
26 Correct 1 ms 348 KB correct
27 Correct 0 ms 348 KB correct
28 Correct 0 ms 348 KB correct
29 Correct 0 ms 348 KB correct
30 Correct 0 ms 348 KB correct
31 Correct 0 ms 348 KB correct
32 Correct 0 ms 348 KB correct
33 Correct 1 ms 348 KB correct
34 Incorrect 1642 ms 1108 KB WA in grader: NO
35 Halted 0 ms 0 KB -