Submission #925468

#TimeUsernameProblemLanguageResultExecution timeMemory
925468BoopyTheNoobBalloons (CEOI11_bal)C++14
10 / 100
123 ms13056 KiB
#include <bits/stdc++.h>
using namespace std;

void subtask1 (vector<pair<double, double>> info) {
    vector<double> ans(info.size());
    ans[0] = info[0].second;
    for (int i = 1; i < info.size(); i++) {
        double pans = 1e9;
        for (int j = 0; j < i; j++)
            pans = min(pans, (info[i].first - info[j].first) * (info[i].first - info[j].first) / (4 * ans[j]));
        ans[i] = min(pans, info[i].second);
    }
    for (auto x: ans) printf("%.3lf\n", x);
}

void subtask2 (vector<pair<double, double>> info) {
    vector<double> ans(info.size());
    vector<pair<double, double>> q;
    ans[0] = info[0].second;
    q.push_back({info[0].first, ans[0]});
    for (int i = 1; i < info.size(); i++) {
        double pans = info[i].second;
        int j = q.size() - 1;
        for (; j >= 0; j--) {
            double span = (info[i].first - q[j].first) * (info[i].first - q[j].first) / (4 * q[j].second);
            if (span <= pans) pans = span;
            else {
                j++;
                break;
            }
        }
        ans[i] = pans;
        for (int k = j + 1; k < q.size(); k++)
            q.pop_back();
        q.push_back({info[i].first, ans[i]});
    }
    for (auto x: ans) printf("%.3lf\n", x);
}

int main (void) {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    int n;
    cin >> n;
    vector<pair<double, double>> info(n);
    for (int i = 0; i < n; i++)
        cin >> info[i].first >> info[i].second;
    subtask2(info);
    return 0;
}

Compilation message (stderr)

bal.cpp: In function 'void subtask1(std::vector<std::pair<double, double> >)':
bal.cpp:7:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<double, double> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
    7 |     for (int i = 1; i < info.size(); i++) {
      |                     ~~^~~~~~~~~~~~~
bal.cpp: In function 'void subtask2(std::vector<std::pair<double, double> >)':
bal.cpp:21:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<double, double> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   21 |     for (int i = 1; i < info.size(); i++) {
      |                     ~~^~~~~~~~~~~~~
bal.cpp:33:31: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<double, double> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   33 |         for (int k = j + 1; k < q.size(); k++)
      |                             ~~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...