Submission #577579

# Submission time Handle Problem Language Result Execution time Memory
577579 2022-06-15T05:47:49 Z amunduzbaev Roads (CEOI20_roads) C++17
15 / 100
30 ms 2464 KB
#include "bits/stdc++.h"
using namespace std;
 
#define ar array
typedef int64_t ll;
//~ #define double long double
 
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][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<double, ar<int, 2>> mm;
	for(int i=0;i<n;i++){
		double 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<<a[i][0]<<" "<<a[i][1]<<" "<<mm[p][0]<<" "<<mm[p][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[*pi], S[*pf])"
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 292 KB Output is correct
2 Correct 1 ms 340 KB Output is correct
3 Correct 1 ms 340 KB Output is correct
4 Correct 12 ms 1308 KB Output is correct
5 Correct 23 ms 2464 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 16 ms 1364 KB Output is correct
5 Correct 30 ms 2408 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 Correct 1 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 12 ms 1388 KB Output is correct
5 Correct 29 ms 2440 KB Output is correct
6 Failed 1 ms 212 KB Condition failed: "!Cross(S[*pi], S[*pa])"
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[*pi], 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[*pi], S[*pf])"
2 Halted 0 ms 0 KB -