Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- typedef long long ll;
- typedef vector<ll> vi;
- #define pb push_back
- #define mp make_pair
- #define N 10000000
- double calc(ll x, ll y)
- {
- return sqrt(x*x + y*y);
- }
- struct dist{
- ll x, y, k;
- double r;
- };
- int main()
- {
- ll n, s;
- cin >> n >> s;
- ll V = N-s;
- dist a[n];
- vector<pair<double, ll>> b;
- for(ll i = 0; i < n; i++)
- {
- cin >> a[i].x >> a[i].y >> a[i].k;
- a[i].r = calc(a[i].x, a[i].y);
- b.pb(mp(a[i].r, a[i].k));
- }
- sort(b.begin(), b.end());
- for(ll i = 1; i < n; i++)
- {
- ll q = i -1;
- b[i].second += b[q].second;
- }
- ll L = 0;
- ll R = n-1;
- while(L <= R)
- {
- ll mid = L + (R-L)/2;
- if(b[mid].second == V)
- {
- cout << b[mid].first << endl;
- return 0;
- }
- else if(b[mid].second < N)
- {
- L = mid+1;
- }
- else R = mid-1;
- }
- cout << -1 << endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement