QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#89669#5253. DenormalizationCCSU_WineWA 2ms3540kbC++201.0kb2023-03-20 21:32:332023-03-20 21:32:36

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:32:36]
  • 评测
  • 测评结果:WA
  • 用时:2ms
  • 内存:3540kb
  • [2023-03-20 21:32:33]
  • 提交

answer

#include <math.h>
#include <iostream>
using namespace std;
const double eps = 1e-6;
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: 100
Accepted
time: 2ms
memory: 3500kb

input:

2
0.909840249060
0.414958698174

output:

1127
514

result:

ok good solution

Test #2:

score: 0
Accepted
time: 2ms
memory: 3500kb

input:

3
0.005731604132
0.696198848562
0.717826101486

output:

22
2672
2755

result:

ok good solution

Test #3:

score: -100
Wrong Answer
time: 2ms
memory: 3540kb

input:

10
0.338936215010
0.390914583549
0.048893426174
0.446152513833
0.137891103101
0.017985796057
0.459132554353
0.201452557127
0.362800863500
0.358493585479

output:

10000
11533
1442
13163
4068
530
13546
5943
10704
10577

result:

wrong answer Integer parameter [name=r_i] equals to 11533, violates the range [1, 10000]