Advertisement
Guest User

Untitled

a guest
Nov 18th, 2019
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.24 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <iostream>
  3. #include <vector>
  4. #include <string>
  5. #include <algorithm>
  6. #include <queue>
  7. #include <set>
  8. #include <map>
  9. using namespace std;
  10.  
  11.  
  12. int main() {
  13. int n;
  14. cin >> n;
  15. vector<double>vx(n), vy(n), vr(n);
  16. vector<pair<double, double>>vimp(n), vimp1;
  17. vector<pair<double, double>>meteor;
  18. vector<pair<double, double>>v;
  19. vector<double>answers;
  20. for (int i = 0; i < n; i++) {
  21. cin >> vx[i] >> vy[i] >> vr[i];
  22. vimp[i] = make_pair(vx[i] - vy[i] - vr[i] * sqrt(2),
  23. vx[i] - vy[i] + vr[i] * sqrt(2));
  24. }
  25. for (auto it : vimp) {
  26. v.push_back({ it.first , -1 });
  27. v.push_back({ it.second, 1 });
  28. }
  29.  
  30. sort(v.begin(), v.end());
  31.  
  32. int i = 1;
  33. int balance = -1;
  34. while (i < v.size() - 1) {
  35. balance += v[i].second;
  36. if (balance == 0) {
  37. meteor.push_back({ v[i].first, v[i + 1].first });
  38. balance = -1;
  39. i++;
  40. }
  41. i++;
  42. }
  43.  
  44. /*for (auto it : meteor) {
  45. cout << it.first << " " << it.second;
  46. }*/
  47.  
  48.  
  49. for (int i = 0; i < meteor.size(); i++) {
  50. double super = meteor[i].second - meteor[i].first;
  51. double a = super / sqrt(2);
  52. answers.push_back(a);
  53. }
  54.  
  55. cout << answers.size() << endl;
  56.  
  57. for (int i = 0; i < answers.size(); i++) {
  58. cout << answers[i] << endl;
  59. }
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement