QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#89664#5253. DenormalizationCCSU_WineWA 0ms3540kbC++201.0kb2023-03-20 21:20:242023-03-20 21:20:25

Judging History

你现在查看的是最新测评结果

  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2023-03-20 21:20:25]
  • 评测
  • 测评结果:WA
  • 用时:0ms
  • 内存:3540kb
  • [2023-03-20 21:20:24]
  • 提交

answer

#include <math.h>
#include <iostream>
using namespace std;
const double eps = 1e-8;
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; 
    }
}
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: 3540kb

input:

2
0.909840249060
0.414958698174

output:

10000
4560

result:

wrong answer the greatest common divisor is 80, but expected 1.