Submission #577574

# Submission time Handle Problem Language Result Execution time Memory
577574 2022-06-15T05:39:14 Z amunduzbaev Roads (CEOI20_roads) C++17
15 / 100
22 ms 2752 KB
#include "bits/stdc++.h"
using namespace std;
 
#define ar array
typedef int64_t ll;
typedef long double ld;
//~ #define int ll

signed main(){
	ios::sync_with_stdio(0); cin.tie(0);
	
	int n; cin>>n;
	vector<ar<int, 4>> a(n);
	for(int i=0;i<n;i++){
		cin>>a[i][0]>>a[i][1]>>a[i][2]>>a[i][3];
		if(a[i][0] > a[i][2]){
			swap(a[i][0], a[i][2]), swap(a[i][1], a[i][3]);
		}
		if(a[i][0] == a[i][2] && a[i][1] > a[i][3]){
			swap(a[i][0], a[i][2]), swap(a[i][1], a[i][3]);
		}
		//~ if(a[i][1] > a[i][3]) swap(a[i][0], a[i][2]), swap(a[i][1], a[i][3]);
		//~ if(a[i][1] == a[i][3]){
			//~ if(a[i][0] > a[i][2]) swap(a[i][0], a[i][2]), swap(a[i][1], a[i][3]);
		//~ }
	}
	
	sort(a.begin(), a.end());
	//~ , [&](auto& a, auto& b){
		//~ if(a[1] != b[1]){
			//~ return a[1] > b[1];
		//~ } else {
			//~ return a[0] < b[0];
		//~ }
	//~ });
	
	map<ld, ar<int, 2>> mm;
	for(int i=0;i<n;i++){
		ld p = a[i][0];
		if(a[i][0] != a[i][2]){
			p = 1. * (a[i][1] - a[i][3]) / 1. * (a[i][0] - a[i][2]);
			p = 1. * a[i][1] - p * a[i][0];
		}
		
		if(mm.count(p)){
			cout<<mm[p][0]<<" "<<mm[p][1]<<" "<<a[i][0]<<" "<<a[i][1]<<"\n";
		}
		mm[p] = {a[i][2], a[i][3]};
	}
	
	ar<int, 2> last {};
	int c = 0;
	for(auto [d, p] : mm){
		if(c){
			cout<<last[0]<<" "<<last[1]<<" "<<p[0]<<" "<<p[1]<<"\n";
		}
		
		last = p;
		c = 1;
	}
}
# Verdict Execution time Memory Grader output
1 Failed 0 ms 212 KB Condition failed: "pf == Sline.end() || !Cross(S[*pa], S[*pf])"
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 1 ms 340 KB Output is correct
3 Correct 1 ms 340 KB Output is correct
4 Correct 14 ms 1492 KB Output is correct
5 Correct 20 ms 2716 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 1 ms 340 KB Output is correct
3 Correct 2 ms 340 KB Output is correct
4 Correct 13 ms 1492 KB Output is correct
5 Correct 21 ms 2752 KB Output is correct
6 Failed 1 ms 212 KB Condition failed: "pf == Sline.end() || !Cross(S[*pi], S[*pf])"
7 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 1 ms 340 KB Output is correct
3 Correct 1 ms 340 KB Output is correct
4 Correct 11 ms 1492 KB Output is correct
5 Correct 22 ms 2752 KB Output is correct
6 Failed 0 ms 212 KB Condition failed: "pf == Sline.end() || !Cross(S[*pi], S[*pf])"
7 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Failed 0 ms 212 KB Condition failed: "pf == Sline.end() || !Cross(S[*pa], S[*pf])"
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Failed 0 ms 212 KB Condition failed: "pf == Sline.end() || !Cross(S[*pa], S[*pf])"
2 Halted 0 ms 0 KB -