Submission #56134

# Submission time Handle Problem Language Result Execution time Memory
56134 2018-07-10T05:28:01 Z 강태규(#1579) Mobile (BOI12_mobile) C++11
0 / 100
449 ms 24068 KB
#include <iostream>
#include <algorithm>
#include <vector>
#include <queue>
#include <deque>
#include <set>
#include <map>
#include <unordered_map>
#include <functional>
#include <cstring>
#include <cmath>
#include <ctime>
#include <cstdlib>

using namespace std;
typedef long long llong;
typedef long double ld;
typedef pair<int, int> pii;
typedef pair<llong, llong> pll;

const int inf = 1e9 + 7;
int n, l, m = -1;
int x[1000000];
int y[1000000];

llong sq(int x) {
    return (llong)x * x;
}

struct line {
    llong m, b;
    ld get(ld x) const {
        return m * x + b;
    }
    ld inter(line x) const {
        return (ld)(b - x.b) / (x.m - m);
    }
} st[1000000];

int tp = 0;

int main() {
    scanf("%d%d", &n, &l);
    for (int i = 0, pr = inf; i < n; ++i) {
        int xs, ys;
        scanf("%d%d", &xs, &ys);
        ys = abs(ys);
        if (xs != pr) {
            x[++m] = xs;
            y[m] = ys;
            pr = xs;
        }
        else {
            y[m] = min(y[m], ys);
        }
    }
    for (int i = 0; i <= m; ++i) {
        line l = { -2 * x[i], sq(x[i]) + sq(y[i]) };
        while (tp > 1 && st[tp - 1].inter(l) <= st[tp - 2].inter(st[tp - 1]))
            --tp;
        st[tp++] = l;
    }
    ld ans = 0;
    for (int i = 1; i < tp; ++i) {
        ld x = st[i - 1].inter(st[i]);
        if (0 <= x && x <= l) ans = max(ans, x * x + st[i].get(x));
    }
    ans = max(ans, st[0].get(0));
    ans = max(ans, sq(l) + st[tp - 1].get(l));
    cout.precision(20);
    cout << sqrt(ans) << '\n';
	return 0;
}

Compilation message

mobile.cpp: In function 'int main()':
mobile.cpp:43:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d%d", &n, &l);
     ~~~~~^~~~~~~~~~~~~~~~
mobile.cpp:46:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d%d", &xs, &ys);
         ~~~~~^~~~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 252 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 3 ms 484 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 5 ms 484 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 5 ms 484 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 5 ms 516 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 5 ms 644 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 32 ms 1232 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 26 ms 1232 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 26 ms 2640 KB Output is correct
2 Incorrect 36 ms 2640 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 42 ms 2640 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 41 ms 2640 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 191 ms 12424 KB Output is correct
2 Correct 237 ms 12424 KB Output is correct
3 Correct 201 ms 12424 KB Output is correct
4 Incorrect 268 ms 12424 KB Output isn't correct
5 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 231 ms 12424 KB Output is correct
2 Incorrect 234 ms 12424 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 263 ms 14696 KB Output is correct
2 Incorrect 220 ms 14696 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 235 ms 14696 KB Output is correct
2 Incorrect 272 ms 14696 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 251 ms 17128 KB Output is correct
2 Incorrect 247 ms 17128 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 302 ms 17128 KB Output is correct
2 Incorrect 275 ms 17128 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 353 ms 19500 KB Output is correct
2 Incorrect 321 ms 19500 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 347 ms 19500 KB Output is correct
2 Incorrect 408 ms 19500 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 362 ms 24068 KB Output is correct
2 Incorrect 311 ms 24068 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 427 ms 24068 KB Output is correct
2 Incorrect 449 ms 24068 KB Output isn't correct
3 Halted 0 ms 0 KB -