QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#89672 | #5253. Denormalization | CCSU_Wine | WA | 0ms | 3500kb | C++20 | 1.0kb | 2023-03-20 21:38:00 | 2023-03-20 21:38:03 |
Judging History
answer
#include <math.h>
#include <iostream>
using namespace std;
const double eps = 1e-5;
int n, ans[15];
double a[15];
int get(double x, double p1, double p2){
return sqrt(x * p2 / p1);
}
void get_org(){
int x = ans[1] * ans[1];
for(int i = 2; i <= n; i ++){
ans[i] = get(x, a[1], a[i]);
}
}
bool sgn(double x){
if(fabs(x) <= eps) return true;
return false;
}
bool check(){
double sum = 0.0;
for(int i = 1; i <= n; i ++){
sum += (double)(ans[i] * ans[i]);
}
for(int i = 1; i <= n; i ++){
if(!sgn(a[i] - (double)(ans[i] * ans[i]) / sum)) return false;
}
return true;
}
int main(){
cin >> n;
for(int i = 1; i <= n; i ++){
cin >> a[i];
a[i] *= a[i]; // a[i]^2 代表转化后的数字占总和的比例
}
for(int i = 1; i <= 10000; i ++){ // 枚举a1
ans[1] = i;
get_org();
if(check()) break;
}
for(int i = 1; i <= n; i ++){
cout << ans[i] << "\n";
}
return 0;
}
详细
Test #1:
score: 0
Wrong Answer
time: 0ms
memory: 3500kb
input:
2 0.909840249060 0.414958698174
output:
239 109
result:
wrong answer incorrect solution