QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#537470 | #5253. Denormalization | UESTC_DECAYALI# | WA | 0ms | 3808kb | C++20 | 1.1kb | 2024-08-30 14:03:32 | 2024-08-30 14:03:32 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
using LD = double;
const int N = 1e4+5;
const LD eps = 5e-7;
int n, r[N], ans[N];
LD A[N], rt[N];
int gcd(int a, int b){return 0==b ? a : gcd(b, a%b);}
LD check(){
int d = 0;
for (int i=1; i<=n; ++i) d += r[i]*r[i];
LD dt = sqrt(d);
for (int i=1; i<=n; ++i) rt[i] = r[i]/dt;
LD res = 0;
for (int i=1; i<=n; ++i){
res = max(abs(rt[i] - A[i]), res);
}
return res;
}
signed main(){
ios::sync_with_stdio(0); cin.tie(0);
cin >> n;
int mn=1;
for (int i=1; i<=n; ++i){
cin >> A[i];
if (A[i] < A[mn]) mn=i;
}
LD minv = 1e30;
for (int i=1; i<=n; ++i){
LD res = i / A[mn];
for (int j=1; j<=n; ++j) r[j] = round(A[j]*res);
LD rs = check();
if(rs < minv) minv = rs, memcpy(ans, r, sizeof(int) * (n + 1));
}
int g = ans[1];
for(int i=1; i<=n; ++i) g = __gcd(g, ans[i]);
for (int i=1; i<=n; ++i){
cout << ans[i] / g << '\n';
}
return 0;
}
詳細信息
Test #1:
score: 0
Wrong Answer
time: 0ms
memory: 3808kb
input:
2 0.909840249060 0.414958698174
output:
2 1
result:
wrong answer incorrect solution