Submission #1205015

#TimeUsernameProblemLanguageResultExecution timeMemory
1205015radaiosm7Balloons (CEOI11_bal)C++20
20 / 100
176 ms12072 KiB
#include <bits/stdc++.h>
using namespace std;
int n;
long double x[200005];
long double r[200005];
long double final_rad[200005];
vector<int> S;

long double nr(int i, int j) {
  return (x[i]-x[j])*(x[i]-x[j])/(4.0*final_rad[i]);
}

int main() {
  scanf("%d", &n);
  for (int i=1; i <= n; ++i) cin >> x[i] >> r[i];

  final_rad[1] = r[1];
  S.push_back(1);

  for (int i=2; i <= n; ++i) {
    while (S.size() >= 2 && nr(S[S.size()-2], i) < nr(S[S.size()-1], i))
      S.pop_back();

    long double rd = nr(S[S.size()-1], i);
    if (rd > r[i]) final_rad[i] = r[i];
    else final_rad[i] = rd;
    S.push_back(i);
  }

  cout << fixed << setprecision(3);
  for (int i=1; i <= n; ++i) cout << final_rad[i] << '\n';
  return 0;
}

Compilation message (stderr)

bal.cpp: In function 'int main()':
bal.cpp:14:8: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   14 |   scanf("%d", &n);
      |   ~~~~~^~~~~~~~~~
#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...