Submission #624243

#TimeUsernameProblemLanguageResultExecution timeMemory
624243Vladth11Roads (CEOI20_roads)C++14
0 / 100
4 ms852 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); } pii roteste(pii x, long double angle){ long double cine = pi / 2.0; if(angle < cine){ angle = cine / 2 - angle; } return {x.first * cos(angle) - x.second * sin(angle), x.first * sin(angle) + x.second * cos(angle)}; } 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.first != a.first){ slope = (a.second - b.second) / (a.first - b.first); } pii d; long double distanta = dd(a, b); pii mijloc = {(a.first + b.first) / 2.0, (a.second + b.second) / 2.0}; d = roteste(a, slope); cine[d] = a; a = d; v[i] = a; pii c = roteste(b, slope); 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; }

Compilation message (stderr)

roads.cpp: In function 'int main()':
roads.cpp:76:19: warning: unused variable 'distanta' [-Wunused-variable]
   76 |       long double distanta = dd(a, b);
      |                   ^~~~~~~~
roads.cpp:77:12: warning: variable 'mijloc' set but not used [-Wunused-but-set-variable]
   77 |        pii mijloc = {(a.first + b.first) / 2.0, (a.second + b.second) / 2.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...