Submission #577557

# Submission time Handle Problem Language Result Execution time Memory
577557 2022-06-15T04:53:52 Z amunduzbaev Roads (CEOI20_roads) C++17
15 / 100
25 ms 3152 KB
#include "bits/stdc++.h"
using namespace std;
 
#define ar array
typedef int64_t ll;
//~ #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][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]) / (a[i][0] - a[i][2]);
		}
		
		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 1 ms 320 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 1 ms 316 KB Output is correct
2 Correct 1 ms 340 KB Output is correct
3 Correct 2 ms 468 KB Output is correct
4 Correct 12 ms 1612 KB Output is correct
5 Correct 25 ms 3020 KB Output is correct
# 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 460 KB Output is correct
4 Correct 11 ms 1620 KB Output is correct
5 Correct 25 ms 3152 KB Output is correct
6 Correct 1 ms 212 KB Output is correct
7 Correct 1 ms 340 KB Output is correct
8 Failed 1 ms 340 KB Condition failed: "pf == Sline.end() || !Cross(S[*pa], S[*pf])"
9 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 2 ms 468 KB Output is correct
4 Correct 12 ms 1620 KB Output is correct
5 Correct 24 ms 3048 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 Failed 1 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 1 ms 320 KB Condition failed: "pf == Sline.end() || !Cross(S[*pa], S[*pf])"
2 Halted 0 ms 0 KB -