Submission #916300

# Submission time Handle Problem Language Result Execution time Memory
916300 2024-01-25T15:49:26 Z asdasdqwer Mobile (BOI12_mobile) C++14
35 / 100
1000 ms 66748 KB
#include <bits/stdc++.h>
using namespace std;

#define int int64_t
#define pii array<int,2>
#define double long double

signed main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    
    int n,t;cin>>n>>t;
    vector<pii> v(n);
    for (auto &x:v)cin>>x[0]>>x[1];
    
    double l = 1;
    double r = 1e15;
    vector<bool> rem(n, false);
    
    while (abs(l-r) > 0.00001) {
        double m = (l+r)/2.0;
        int i=0;
        vector<array<double,2>> start;
        for (auto &x:v) {
            if ((double)abs(x[1]) >= m) {
                rem[i]=true;
            }
    
            else {
                double aa=(double)abs(x[1]);
                double dis=sqrt(m*m-aa*aa);
                array<double,2> pos1 = {x[0]-dis,x[0]+dis};
                if ((pos1[0] < 0.0 && pos1[1] < 0.0) || (pos1[0] > (double)t && pos1[1] > (double)t)) {
                    rem[i]=true;
                }
    
                else {
                    pos1[0]=max(pos1[0], (double)0.0);
                    pos1[1]=min(pos1[1], (double)t);
                    start.push_back(pos1);
                }
            }
    
            i++;
        }
    
        start.push_back({0.0, 0.0});
        start.push_back({(double)t,(double)t});
    
        sort(start.begin(),start.end());

        // cout<<m<<" "<<l<<" "<<r<<"\n";
        // for (auto &x:start) {
        //     cout<<x[0]<<" "<<x[1]<<"\n";
        // }
        // cout<<"\n";
        // for (auto &x:v) {
        //     cout<<x[0]<<" "<<x[1]<<"\n";
        // }
        // cout<<"\n\n";

    
        array<double,2> pos={0.0, 0.0};
        bool possible=true;
    
        for (auto &x:start) {
            if (x[0] <= pos[1]) {
                pos[1]=max(pos[1], x[1]);
            }
    
            else {
                possible=false;
                break;
            }
        }
    
        if (possible) {
            r=m;
            // int cnt=0;
            // int pt=0;
            // for (int i=0;i<n;i++) {
            //     if (rem[i]) {
            //         cnt++;
            //     }
                
            //     else if (cnt != 0) {
            //         swap(v[i], v[pt]);
            //     }
    
            //     if (!rem[i]) {
            //         pt++;
            //     }
            // }
    
            // n -= cnt;
    
            // while (v.size() != n){
            //     v.pop_back();
            //     rem.pop_back();
            // }
    
            // for (int i=0;i<n;i++) {
            //     rem[i]=false;
            // }
        }
    
        else {
            l=m;
            for (i=0;i<n;i++) {
                rem[i]=false;
            }
        }
    }
    cout<<setprecision(15);
    cout<<r<<"\n";
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 0 ms 344 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 1 ms 348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 1 ms 344 KB Output is correct
3 Correct 2 ms 348 KB Output is correct
4 Correct 1 ms 348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 17 ms 716 KB Output is correct
2 Correct 25 ms 716 KB Output is correct
3 Correct 15 ms 604 KB Output is correct
4 Correct 11 ms 696 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 33 ms 948 KB Output is correct
2 Correct 39 ms 960 KB Output is correct
3 Correct 43 ms 984 KB Output is correct
4 Correct 27 ms 1012 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 31 ms 1024 KB Output is correct
2 Correct 39 ms 952 KB Output is correct
3 Correct 48 ms 1208 KB Output is correct
4 Correct 26 ms 1012 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 32 ms 952 KB Output is correct
2 Correct 41 ms 948 KB Output is correct
3 Correct 43 ms 980 KB Output is correct
4 Correct 25 ms 1316 KB Output is correct
5 Correct 35 ms 1000 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 584 ms 9684 KB Output is correct
2 Correct 875 ms 10004 KB Output is correct
3 Correct 529 ms 5664 KB Output is correct
4 Correct 481 ms 10060 KB Output is correct
5 Correct 418 ms 5276 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 655 ms 9568 KB Output is correct
2 Correct 548 ms 9688 KB Output is correct
3 Correct 559 ms 8400 KB Output is correct
4 Correct 504 ms 9704 KB Output is correct
5 Correct 502 ms 10372 KB Output is correct
# Verdict Execution time Memory Grader output
1 Execution timed out 1028 ms 8916 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1058 ms 9256 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 673 ms 9628 KB Output is correct
2 Execution timed out 1036 ms 11668 KB Time limit exceeded
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1039 ms 40556 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1058 ms 40736 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1027 ms 60760 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1020 ms 60136 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1049 ms 60988 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1032 ms 61812 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1101 ms 63320 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1047 ms 63792 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1091 ms 66748 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1032 ms 66712 KB Time limit exceeded
2 Halted 0 ms 0 KB -