답안 #847628

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
847628 2023-09-10T05:28:38 Z hariaakas646 Mobile (BOI12_mobile) C++17
8 / 100
1000 ms 32464 KB
#include <bits/stdc++.h>

using namespace std;

#define scd(t) scanf("%d", &t)
#define scld(t) scanf("%ld", &t)
#define sclld(t) scanf("%lld", &t)
#define scc(t) scanf("%c", &t)
#define scs(t) scanf("%s", t)
#define scf(t) scanf("%f", &t)
#define sclf(t) scanf("%lf", &t)
#define forr(i, j, k) for (int i = j; i < k; i++)
#define frange(i, j) forr(i, 0, j)
#define all(cont) cont.begin(), cont.end()
#define mp make_pair
#define pb push_back
#define f first
#define s second
typedef long int li;
typedef unsigned long int uli;
typedef long long int lli;
typedef unsigned long long int ulli;
typedef pair<int, int> pii;
typedef vector<int> vi;
typedef vector<bool> vb;
typedef vector<lli> vll;
typedef vector<string> vs;
typedef vector<pii> vii;
typedef vector<vi> vvi;
typedef map<int, int> mpii;
typedef set<int> seti;
typedef multiset<int> mseti;
typedef long double ld;

void usaco()
{
    freopen("input.in", "r", stdin);
//    freopen("problem.out", "w", stdout);
}

int n;
lli l;
vector<pair<lli, lli>> vec;

ld dist(ld x1, ld y1, ld x2, ld y2) {
    return (x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2);
}

bool check(ld x) {
    ld prev = 0;
    
    forr(i, 1, n+1) {
        auto p = vec[i];
        if(prev <= p.f && dist(p.f, p.s, prev, 0) > x) {
            continue;
        }
        ld lo = p.f;
        ld hi = 1e9;
        while(hi - lo >= 1e-6) {
            ld mid = lo + (hi - lo)/2;
            if(dist(p.f, p.s, mid, 0) <= x) {
                lo = mid;
            }
            else {
                hi = mid;
            }
        }
        prev = max(lo, prev);
    }
    return prev >= l;
    
}

int main() {
    // usaco();

    
    scd(n);
    sclld(l);

    vec = vector<pair<lli, lli>>(n+1);

    forr(i, 1, n+1) {
        sclld(vec[i].f);
        sclld(vec[i].s);
    }

    ld lo = 0;
    ld hi = 2e18;

    while(hi - lo >= 1e-6) {
        ld mid = (lo + hi)/2;
        if(check(mid)) {
            hi = mid;
        }
        else lo = mid;
    }

    ld out = sqrt(ld(lo));
    cout << out << "\n";

}

Compilation message

mobile.cpp: In function 'void usaco()':
mobile.cpp:37:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   37 |     freopen("input.in", "r", stdin);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
mobile.cpp: In function 'int main()':
mobile.cpp:5:21: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
    5 | #define scd(t) scanf("%d", &t)
      |                ~~~~~^~~~~~~~~~
mobile.cpp:78:5: note: in expansion of macro 'scd'
   78 |     scd(n);
      |     ^~~
mobile.cpp:7:23: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
    7 | #define sclld(t) scanf("%lld", &t)
      |                  ~~~~~^~~~~~~~~~~~
mobile.cpp:79:5: note: in expansion of macro 'sclld'
   79 |     sclld(l);
      |     ^~~~~
mobile.cpp:7:23: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
    7 | #define sclld(t) scanf("%lld", &t)
      |                  ~~~~~^~~~~~~~~~~~
mobile.cpp:84:9: note: in expansion of macro 'sclld'
   84 |         sclld(vec[i].f);
      |         ^~~~~
mobile.cpp:7:23: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
    7 | #define sclld(t) scanf("%lld", &t)
      |                  ~~~~~^~~~~~~~~~~~
mobile.cpp:85:9: note: in expansion of macro 'sclld'
   85 |         sclld(vec[i].s);
      |         ^~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 348 KB Output is correct
2 Correct 1 ms 348 KB Output is correct
3 Correct 1 ms 348 KB Output is correct
4 Correct 1 ms 348 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 9 ms 348 KB Output is correct
2 Correct 8 ms 344 KB Output is correct
3 Correct 8 ms 348 KB Output is correct
4 Correct 6 ms 348 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 145 ms 472 KB Output is correct
2 Correct 151 ms 468 KB Output is correct
3 Correct 100 ms 456 KB Output is correct
4 Incorrect 113 ms 348 KB Output isn't correct
5 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 259 ms 536 KB Output is correct
2 Execution timed out 1060 ms 348 KB Time limit exceeded
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 249 ms 348 KB Output is correct
2 Execution timed out 1061 ms 348 KB Time limit exceeded
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 257 ms 600 KB Output is correct
2 Execution timed out 1071 ms 348 KB Time limit exceeded
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1049 ms 2396 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1057 ms 2164 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1057 ms 2396 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1030 ms 3412 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1049 ms 3420 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1045 ms 12352 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1026 ms 16312 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1034 ms 14932 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1029 ms 19536 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1020 ms 17392 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1039 ms 22912 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1012 ms 19720 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1084 ms 25940 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1049 ms 24660 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1031 ms 32464 KB Time limit exceeded
2 Halted 0 ms 0 KB -