QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#141491 | #5253. Denormalization | PhantomThreshold# | WA | 5ms | 3980kb | C++20 | 1.8kb | 2023-08-17 15:12:40 | 2023-08-17 15:12:41 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
typedef long double db;
const db eps=1e-8;
const db lim=10001;
int sign(db k){
if (k<-eps) return -1;
else if (k>eps) return 1;
return 0;
}
long long div(db a,db b){
long long tmp=a/b+0.5;
return tmp;
}
db mod(db a,db b){
return a-div(a,b)*b;
}
const int maxn=10000;
int n;
db a[maxn+50];
db b[maxn+50];
long long ans[maxn+50];
long long A[maxn+50];
int main(){
ios_base::sync_with_stdio(false);
mt19937 rng((unsigned long long)(new char));
cerr << fixed << setprecision(12);
cin >> n;
for (int i=1;i<=n;i++) cin >> a[i];
/*
{
for (int i=1;i<=n;i++) A[i]=rng()%10000+1;
// for (int i=1;i<=n;i++) cin >> A[i];
long long g=0;
for (int i=1;i<=n;i++) g=__gcd(g,A[i]);
for (int i=1;i<=n;i++) A[i]/=g;
db D=1;
for (int i=1;i<=n;i++) D+=A[i]*A[i];
for (int i=1;i<=n;i++) cerr << A[i] << " ";
cerr << endl;
D=sqrtl(D);
cerr << "D : " << D << endl;
cerr << "1/D : " << 1/D << endl;
for (int i=1;i<=n;i++) a[i]=((long long)(A[i]/D*1e12))/1e12;
for (int i=1;i<=n;i++) cerr << a[i] << " ";
cerr << endl;
}
*/
db g=0;
for (int i=1;i<=n;i++) b[i]=a[i];
for (int cnt=1;cnt<=100;cnt++){
int mnpos=1;
db mx=0;
for (int i=1;i<=n;i++){
if (sign(b[i])!=0){
if (mnpos==0 || b[i]<b[mnpos]) mnpos=i;
}
}
for (int i=1;i<=n;i++) mx=max(mx,b[i]);
g=mx;
// cerr << "mn,mx : " << b[mnpos] << " " << mx << endl;
if (sign(b[mnpos])==0) break;
if (fabs(mx/b[mnpos])>lim) break;
for (int i=1;i<=n;i++) if (i!=mnpos && sign(b[i])!=0) b[i]=fabs(mod(b[i],b[mnpos]));
// for (int i=1;i<=n;i++) cerr << b[i] << " ";
// cerr << endl;
}
// cerr << "g : " << g << endl;
for (int i=1;i<=n;i++) ans[i]=div(a[i],g);
for (int i=1;i<=n;i++) cout << ans[i] << "\n";
return 0;
}
/*
3
5984 3409 8792
*/
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 1ms
memory: 3680kb
input:
2 0.909840249060 0.414958698174
output:
9665 4408
result:
ok good solution
Test #2:
score: 0
Accepted
time: 1ms
memory: 3680kb
input:
3 0.005731604132 0.696198848562 0.717826101486
output:
75 9110 9393
result:
ok good solution
Test #3:
score: 0
Accepted
time: 0ms
memory: 3780kb
input:
10 0.338936215010 0.390914583549 0.048893426174 0.446152513833 0.137891103101 0.017985796057 0.459132554353 0.201452557127 0.362800863500 0.358493585479
output:
5823 6716 840 7665 2369 309 7888 3461 6233 6159
result:
ok good solution
Test #4:
score: 0
Accepted
time: 1ms
memory: 3800kb
input:
100 0.027828573352 0.034289446708 0.021442608673 0.002752893865 0.091163859407 0.180717182268 0.012097751269 0.101332712254 0.087249881055 0.112643922419 0.016667180541 0.108449036530 0.050488448020 0.104216696303 0.120734059490 0.090096410766 0.066537631979 0.046668105514 0.174836851156 0.084908984...
output:
1486 1831 1145 147 4868 9650 646 5411 4659 6015 890 5791 2696 5565 6447 4811 3553 2492 9336 4534 5302 193 5082 58 1438 4729 3774 542 5876 1641 5574 1443 9374 7710 9570 1413 3054 396 2768 8066 1774 1546 9548 1546 8339 411 3862 3496 3418 8165 4760 7829 4709 8174 8816 4396 7811 8148 2957 1239 1857 4361...
result:
ok good solution
Test #5:
score: -100
Wrong Answer
time: 5ms
memory: 3980kb
input:
10000 0.014153431495 0.006246805276 0.014846752535 0.008905976745 0.012146085543 0.003020528319 0.010107617948 0.005218062088 0.014054879627 0.009239669913 0.008637984822 0.013371932468 0.009493829995 0.005771335736 0.002264963994 0.010799210007 0.015999982294 0.014564928771 0.001206828144 0.0056243...
output:
8193 3616 8594 5155 7031 1749 5851 3021 8136 5349 5000 7741 5496 3341 1311 6251 9262 8431 699 3256 18 6753 6388 7587 1484 2173 4332 7374 2074 8236 3816 8751 9609 5380 9219 4225 6859 8477 8395 930 2606 4107 8586 2770 1139 3757 2141 7169 5881 525 8783 4410 7776 1655 3083 735 3953 4294 6834 4800 4009 4...
result:
wrong answer Integer parameter [name=r_i] equals to 10009, violates the range [1, 10000]