답안 #954057

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
954057 2024-03-27T08:03:57 Z blackslex Balloons (CEOI11_bal) C++17
100 / 100
90 ms 8500 KB
#include<bits/stdc++.h>

using namespace std;

int n;

int main() {
    scanf("%d", &n);
    vector<int> x(n), r(n);
    vector<double> dp(n);
    // dp[i] = min {0<=j<i} {(x[i]-x[j])*(x[i]-x[j]) / 4*dp[j]}
    for (int i = 0; i < n; i++) scanf("%d %d", &x[i], &r[i]), dp[i] = (double) r[i];
    stack<int> st;
    for (int i = 0; i < n; i++) {
        while (!st.empty() && (dp[i] = min(dp[i], (double) 1.0 * (x[st.top()] - x[i]) * (x[st.top()] - x[i]) / (4.0 * dp[st.top()]))) >= dp[st.top()]) st.pop();
        st.emplace(i);
    }
    for (int i = 0; i < n; i++) printf("%.3lf\n", dp[i]);
}

Compilation message

bal.cpp: In function 'int main()':
bal.cpp:8:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
    8 |     scanf("%d", &n);
      |     ~~~~~^~~~~~~~~~
bal.cpp:12:38: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   12 |     for (int i = 0; i < n; i++) scanf("%d %d", &x[i], &r[i]), dp[i] = (double) r[i];
      |                                 ~~~~~^~~~~~~~~~~~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB 10 numbers
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB 2 numbers
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB 505 numbers
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB 2000 numbers
# 결과 실행 시간 메모리 Grader output
1 Correct 12 ms 1000 KB 20000 numbers
# 결과 실행 시간 메모리 Grader output
1 Correct 24 ms 2096 KB 50000 numbers
2 Correct 21 ms 2160 KB 49912 numbers
# 결과 실행 시간 메모리 Grader output
1 Correct 47 ms 3860 KB 100000 numbers
# 결과 실행 시간 메모리 Grader output
1 Correct 58 ms 4172 KB 115362 numbers
2 Correct 46 ms 5208 KB 119971 numbers
# 결과 실행 시간 메모리 Grader output
1 Correct 73 ms 5476 KB 154271 numbers
2 Correct 81 ms 8500 KB 200000 numbers
# 결과 실행 시간 메모리 Grader output
1 Correct 90 ms 6520 KB 200000 numbers
2 Correct 76 ms 8440 KB 199945 numbers