Advertisement
Guest User

Untitled

a guest
Oct 15th, 2019
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.02 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. typedef long long ll;
  4. typedef vector<ll> vi;
  5. #define pb push_back
  6. #define mp make_pair
  7. #define N 10000000
  8. double calc(ll x, ll y)
  9. {
  10. return sqrt(x*x + y*y);
  11. }
  12. struct dist{
  13. ll x, y, k;
  14. double r;
  15. };
  16. int main()
  17. {
  18. ll n, s;
  19. cin >> n >> s;
  20. ll V = N-s;
  21. dist a[n];
  22. vector<pair<double, ll>> b;
  23. for(ll i = 0; i < n; i++)
  24. {
  25. cin >> a[i].x >> a[i].y >> a[i].k;
  26. a[i].r = calc(a[i].x, a[i].y);
  27. b.pb(mp(a[i].r, a[i].k));
  28.  
  29.  
  30. }
  31. sort(b.begin(), b.end());
  32.  
  33. for(ll i = 1; i < n; i++)
  34. {
  35. ll q = i -1;
  36. b[i].second += b[q].second;
  37. }
  38. ll L = 0;
  39. ll R = n-1;
  40. while(L <= R)
  41. {
  42. ll mid = L + (R-L)/2;
  43. if(b[mid].second == V)
  44. {
  45. cout << b[mid].first << endl;
  46. return 0;
  47. }
  48. else if(b[mid].second < N)
  49. {
  50. L = mid+1;
  51. }
  52. else R = mid-1;
  53. }
  54. cout << -1 << endl;
  55.  
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement