Submission #623805

#TimeUsernameProblemLanguageResultExecution timeMemory
623805Vladth11Roads (CEOI20_roads)C++14
0 / 100
1 ms340 KiB
#include <bits/stdc++.h> #define C 1 #define P 0 #define debug(x) cerr << #x << " " << x << "\n" #define debugs(x) cerr << #x << " " << x << " " using namespace std; typedef long long ll; typedef pair <long double, long double> pii; const ll NMAX = 100001; const ll VMAX = 101; const ll INF = (1LL << 60); const ll MOD = 1000000007; const ll BLOCK = 447; const ll base = 117; const ll nr_of_bits = 18; const ll inv2 = 500000004; map <pii, pii> mp; pii v[NMAX * 2]; struct ura{ pii a, b; }; const long double pi = 3.14159265358979323846; vector <ura> sol; map <pii, bool> scutit; long double slope = 1; bool mic(pii a, pii b){ return a < b; } bool cmp(pii a, pii b){ return (mic(a, b)); } long double dd(pii a, pii b){ return sqrt((a.first - b.first) * (a.first - b.first) + (a.second - b.second) * (a.second - b.second)); } map <pii, pair <int, int> > cine; long double tg(long double x){ return sin(x) / cos(x); } int main() { //ifstream cin(".in"); //ofstream cout(".out"); ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n, i; cin >> n; for(i = 1; i <= n; i++){ pii a, b; cin >> a.first >> a.second >> b.first >> b.second; if(mic(a, b)) swap(a, b); if(b.second != a.second){ slope = (a.first - b.first) / (a.second - b.second); } pii d; d.first = a.first * tg(slope); d.second = a.second * tg(slope); cine[d] = a; a = d; v[i] = a; pii c = {a.first, 0}; c.second = a.second +dd(a, b); cine[c] = b; b = c; mp[a] = b; mp[b] = a; } sort(v + 1, v + n + 1, cmp); for(i = 1; i < n; i++){ sol.push_back({v[i], mp[v[i + 1]]}); } for(auto x : sol){ cout << cine[x.a].first << " " << cine[x.a].second << " " << cine[x.b].first << " " << cine[x.b].second << "\n"; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...