답안 #1101206

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1101206 2024-10-15T18:00:57 Z zyadhany Mobile (BOI12_mobile) C++17
0 / 100
1000 ms 48488 KB
#define _CRT_SECURE_NO_WARNINGS
#include <bits/stdc++.h>
#include <unordered_map>
#include <unordered_set>

#define ll long long
#define ld long double
#define pl pair<ll, ll>
#define vi vector<ll>
#define vii vector<vi>
#define vc vector<char>
#define vcc vector<vc>
#define vp vector<pl>
#define mi map<ll,ll>
#define mc map<char,ll>
#define sortx(X) sort(X.begin(),X.end());
#define all(X) X.begin(),X.end()
#define ln '\n'
#define YES {cout << "YES\n"; return;}
#define NO {cout << "NO\n"; return;}
#define MUN {cout << "-1\n"; return;}

const int MODE = 1e9 + 7;

using namespace std;


void solve(int tc) {
    ll n, len;

    cin >> n >> len;

    vp X(n);
    for (int i = 0; i < n; i++)
        cin >> X[i].first >> X[i].second;    

    double l = 0, r = 1.5e9;
    double err = 1e-3;
    while (r - l > err)
    {
        double mid = (l + r) / 2;
        bool isit = 0;


        vector<pair<double, double>> Z;

        for (int i = 0; i < n; i++)
        {
            if (X[i].second > mid) continue;
            double diff = sqrt(mid * mid - X[i].second * X[i].second);
            double a = X[i].first - diff;
            double b = X[i].first + diff;
            Z.push_back({a, b});
        }
        
        sortx(Z);
        for (int i = 1; i < Z.size(); i++)
        {
            if (Z[i].first > Z[i - 1].second) isit = 1;
            Z[i].second = max(Z[i].second, Z[i - 1].second);
        }
        if (Z.empty() || Z[0].first > 0 || Z.back().second < len) isit = 1;

        if (isit) l = mid;
        else r = mid - err;
    }
    
    cout << fixed << setprecision(4) << l << '\n';
}

int main()
{
    ios_base::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr);
    int size = 1;

    //freopen("loan.in", "r", stdin);
    //freopen("loan.out", "w", stdout);
    
    //cin >> size;
    for (int i = 1; i <= size; i++) solve(i);
}

Compilation message

mobile.cpp: In function 'void solve(int)':
mobile.cpp:57:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<double, double> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   57 |         for (int i = 1; i < Z.size(); i++)
      |                         ~~^~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 336 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 504 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 5 ms 592 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 12 ms 736 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 12 ms 908 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 8 ms 752 KB Output is correct
2 Incorrect 9 ms 736 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 122 ms 4940 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 291 ms 5008 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 154 ms 6016 KB Output is correct
2 Correct 251 ms 5108 KB Output is correct
3 Correct 268 ms 5168 KB Output is correct
4 Incorrect 446 ms 5620 KB Output isn't correct
5 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 255 ms 5692 KB Output is correct
2 Correct 352 ms 5664 KB Output is correct
3 Incorrect 336 ms 5704 KB Output isn't correct
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 187 ms 5912 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 789 ms 24356 KB Output is correct
2 Execution timed out 1037 ms 24312 KB Time limit exceeded
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1045 ms 24320 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 983 ms 37232 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1048 ms 35676 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1060 ms 39412 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1049 ms 38832 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1060 ms 42572 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1033 ms 42476 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1068 ms 48488 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1049 ms 48288 KB Time limit exceeded
2 Halted 0 ms 0 KB -