Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #include <iostream>
- #include <vector>
- #include <string>
- #include <algorithm>
- #include <queue>
- #include <set>
- #include <map>
- using namespace std;
- int main() {
- int n;
- cin >> n;
- vector<double>vx(n), vy(n), vr(n);
- vector<pair<double, double>>vimp(n), vimp1;
- vector<pair<double, double>>meteor;
- vector<pair<double, double>>v;
- vector<double>answers;
- for (int i = 0; i < n; i++) {
- cin >> vx[i] >> vy[i] >> vr[i];
- vimp[i] = make_pair(vx[i] - vy[i] - vr[i] * sqrt(2),
- vx[i] - vy[i] + vr[i] * sqrt(2));
- }
- for (auto it : vimp) {
- v.push_back({ it.first , -1 });
- v.push_back({ it.second, 1 });
- }
- sort(v.begin(), v.end());
- int i = 1;
- int balance = -1;
- while (i < v.size() - 1) {
- balance += v[i].second;
- if (balance == 0) {
- meteor.push_back({ v[i].first, v[i + 1].first });
- balance = -1;
- i++;
- }
- i++;
- }
- /*for (auto it : meteor) {
- cout << it.first << " " << it.second;
- }*/
- for (int i = 0; i < meteor.size(); i++) {
- double super = meteor[i].second - meteor[i].first;
- double a = super / sqrt(2);
- answers.push_back(a);
- }
- cout << answers.size() << endl;
- for (int i = 0; i < answers.size(); i++) {
- cout << answers[i] << endl;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement