100172024-03-24 11:04:07111Rajzcpp17Időlimit túllépés 20/1001.078s30144 KiB
#include <bits/stdc++.h>
using namespace std;

#define int long long

int sign(int x) {
	return (x > 0) - (x < 0);
}

int cross(int x1, int y1, int x2, int y2) {
	return x1 * y2 - y1 * x2;
}

int orient(int x1, int y1, int x2, int y2, int x3, int y3) {
	return sign(cross(x1 - x2, y1 - y2, x3 - x2, y3 - y2));
}

bool test(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4) {
	int o1 = orient(x1, y1, x2, y2, x3, y3);
	int o2 = orient(x1, y1, x2, y2, x4, y4);
	int o3 = orient(x3, y3, x4, y4, x1, y1);
	int o4 = orient(x3, y3, x4, y4, x2, y2);
	return o1 != o2 && o3 != o4;
}

signed main(){
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	int N;
	cin>>N;
	struct Pt{ 
		int x,y; 
	};
	vector<Pt>v(N);
	for(int i=0;i<N;i++){
		cin>>v[i].x>>v[i].y;
	}
	vector<pair<int,pair<int,int>>>e;
	for(int i=0;i<N;i++){
		for(int j=i+1;j<N;j++){
			e.emplace_back((v[i].x-v[j].x)*(v[i].x-v[j].x)+(v[i].y-v[j].y)*(v[i].y-v[j].y),make_pair(i,j));
		}
	}
	sort(e.begin(),e.end());
	vector<vector<int>>g(N);
	vector<int>p;
	auto dfs=[&](auto self,int i,int j,int t)->bool{
		if(j==t){
			p.push_back(j);
			return true;
		}
		for(int k:g[j]){
			if(k==i){
				continue;
			}
			if(self(self,j,k,t)){
				p.push_back(j);
				return true;
			}
		}
		return false;
	};
	auto check=[&]()->bool{
		int c=0;
		for(int i=0;i<p.size();i++){
			int j=(i+1)%p.size();
			c+=test(v[p[i]].x,v[p[i]].y,v[p[j]].x,v[p[j]].y,0,0,1e9+7,1e9+9);
		}
		return c%2;
	};
	for(int i=0;i<e.size();){
		int ans=e[i].first;
		while(i<e.size()&&e[i].first==ans){
			auto[a,b]=e[i].second;
			p.clear();
			if(dfs(dfs,-1,a,b)){
				if(check()){
					cout<<ans<<'\n';
					return 0;
				}
			}
			else {
				g[a].push_back(b);
				g[b].push_back(a);
			}
			i++;
		}
	}
	cout<<-1<<'\n';
	return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms1824 KiB
2Elfogadva3ms2080 KiB
subtask220/20
3Elfogadva3ms2292 KiB
4Elfogadva3ms2396 KiB
5Elfogadva3ms2612 KiB
6Elfogadva3ms2692 KiB
7Elfogadva3ms2632 KiB
8Elfogadva3ms2892 KiB
9Elfogadva3ms2880 KiB
10Elfogadva3ms3004 KiB
11Elfogadva3ms3220 KiB
12Elfogadva3ms3192 KiB
subtask30/20
13Elfogadva3ms2292 KiB
14Elfogadva3ms2396 KiB
15Elfogadva3ms2612 KiB
16Elfogadva3ms2692 KiB
17Elfogadva3ms2632 KiB
18Elfogadva3ms2892 KiB
19Elfogadva3ms2880 KiB
20Elfogadva3ms3004 KiB
21Elfogadva3ms3220 KiB
22Elfogadva3ms3192 KiB
23Elfogadva3ms3476 KiB
24Elfogadva3ms3676 KiB
25Elfogadva3ms3648 KiB
26Elfogadva3ms3860 KiB
27Elfogadva3ms3956 KiB
28Elfogadva3ms4084 KiB
29Elfogadva3ms4064 KiB
30Elfogadva3ms4164 KiB
31Elfogadva3ms4296 KiB
subtask40/20
32Elfogadva3ms2292 KiB
33Elfogadva3ms2396 KiB
34Elfogadva3ms2612 KiB
35Elfogadva3ms2692 KiB
36Elfogadva3ms2632 KiB
37Elfogadva3ms2892 KiB
38Elfogadva3ms2880 KiB
39Elfogadva3ms3004 KiB
40Elfogadva3ms3220 KiB
41Elfogadva3ms3192 KiB
42Elfogadva3ms3476 KiB
43Elfogadva3ms3676 KiB
44Elfogadva3ms3648 KiB
45Elfogadva3ms3860 KiB
46Elfogadva3ms3956 KiB
47Elfogadva3ms4084 KiB
48Elfogadva3ms4064 KiB
49Elfogadva3ms4164 KiB
50Elfogadva3ms4296 KiB
51Elfogadva4ms4596 KiB
52Elfogadva3ms4600 KiB
53Elfogadva3ms4632 KiB
54Elfogadva3ms4764 KiB
55Elfogadva3ms4772 KiB
56Elfogadva3ms4680 KiB
57Elfogadva3ms4680 KiB
58Elfogadva3ms4688 KiB
59Elfogadva3ms4692 KiB
60Elfogadva3ms4724 KiB
61Elfogadva3ms4700 KiB
62Elfogadva3ms4732 KiB
63Elfogadva3ms4744 KiB
64Elfogadva3ms4744 KiB
65Elfogadva4ms4784 KiB
66Elfogadva7ms4764 KiB
67Elfogadva8ms5020 KiB
68Elfogadva8ms5012 KiB
69Elfogadva10ms4988 KiB
70Elfogadva8ms4988 KiB
subtask50/40
71Elfogadva3ms2292 KiB
72Elfogadva3ms2396 KiB
73Elfogadva3ms2612 KiB
74Elfogadva3ms2692 KiB
75Elfogadva3ms2632 KiB
76Elfogadva3ms2892 KiB
77Elfogadva3ms2880 KiB
78Elfogadva3ms3004 KiB
79Elfogadva3ms3220 KiB
80Elfogadva3ms3192 KiB
81Elfogadva3ms3476 KiB
82Elfogadva3ms3676 KiB
83Elfogadva3ms3648 KiB
84Elfogadva3ms3860 KiB
85Elfogadva3ms3956 KiB
86Elfogadva3ms4084 KiB
87Elfogadva3ms4064 KiB
88Elfogadva3ms4164 KiB
89Elfogadva3ms4296 KiB
90Elfogadva4ms4596 KiB
91Elfogadva3ms4600 KiB
92Elfogadva3ms4632 KiB
93Elfogadva3ms4764 KiB
94Elfogadva3ms4772 KiB
95Elfogadva3ms4680 KiB
96Elfogadva3ms4680 KiB
97Elfogadva3ms4688 KiB
98Elfogadva3ms4692 KiB
99Elfogadva3ms4724 KiB
100Elfogadva3ms4700 KiB
101Elfogadva3ms4732 KiB
102Elfogadva3ms4744 KiB
103Elfogadva3ms4744 KiB
104Elfogadva4ms4784 KiB
105Elfogadva7ms4764 KiB
106Elfogadva8ms5020 KiB
107Elfogadva8ms5012 KiB
108Elfogadva10ms4988 KiB
109Elfogadva8ms4988 KiB
110Elfogadva108ms29176 KiB
111Elfogadva100ms29236 KiB
112Elfogadva98ms29272 KiB
113Elfogadva96ms29244 KiB
114Elfogadva98ms29272 KiB
115Elfogadva101ms29288 KiB
116Elfogadva86ms29312 KiB
117Elfogadva85ms29360 KiB
118Elfogadva86ms29508 KiB
119Elfogadva86ms29456 KiB
120Elfogadva86ms29492 KiB
121Elfogadva83ms29484 KiB
122Elfogadva90ms29504 KiB
123Elfogadva89ms29528 KiB
124Elfogadva90ms29700 KiB
125Elfogadva87ms30144 KiB
126Időlimit túllépés1.054s17164 KiB
127Időlimit túllépés1.07s17140 KiB
128Időlimit túllépés1.059s17152 KiB
129Időlimit túllépés1.062s17220 KiB
130Időlimit túllépés1.065s17228 KiB
131Időlimit túllépés1.074s17192 KiB
132Időlimit túllépés1.078s17236 KiB