QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#820917 | #9869. Horizon Scanning | qsmcgogo# | WA | 149ms | 36608kb | C++20 | 1.4kb | 2024-12-19 10:03:48 | 2024-12-19 10:03:48 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define double long double
int a[1110110],b[1101010],c[1100110],d[202020];
string s[1010100];
vector<int>g[202020];
pair<int,int>p[202020];
double pi=acos(-1);
double f(pair<int,int>a){
if(a.second==0){
if(a.first>0){
return 0;
}
return pi;
}
double d=sqrt(a.second*a.second+a.first*a.first);
double th=acos(1.0*a.first/d);
if(a.second>0){
return th;
}
return 2*pi-th;
}
bool cmp(pair<int,int>a,pair<int,int>b){
return f(a)<f(b);
}
signed main(){
// ios::sync_with_stdio(false);cin.tie(0);
// cout<<acos(1)<<" "<<acos(-1)<<'\n';
int _=1;
cin>>_;
pi=acos(-1);
int i,j;
int n;
while(_--){
int n,m,l,k,w;
string s;
cin>>n>>k;
for(i=0;i<n;i++){
cin>>p[i].first>>p[i].second;
}
if(n==k){
printf("%.10Lf\n",2*pi);
continue;
}
sort(p,p+n,cmp);
double ma=0;
// k=n-k;
for(i=k;i<2*n;i++){
double temp=f(p[i%n])-f(p[(i-k)%n]);
// cout<<temp<<'\n';
if(temp<0)temp+=2*pi;
ma=max(ma,temp);
}
// cout<<ma<<'\n';
printf("%.10Lf\n",ma);
}
}
/*
3
2 3 1
3 1 2
2 1 3
*/
詳細信息
Test #1:
score: 100
Accepted
time: 5ms
memory: 36608kb
input:
5 1 1 0 1 8 2 1 0 1 1 0 1 -1 1 -1 0 -1 -1 0 -1 1 -1 4 2 -1 1 0 1 0 2 1 1 4 2 -1000000000 0 -998244353 1 998244353 1 1000000000 0 3 1 0 1 0 2 0 -1
output:
6.2831853072 1.5707963268 5.4977871438 3.1415926536 3.1415926536
result:
ok 5 numbers
Test #2:
score: -100
Wrong Answer
time: 149ms
memory: 36496kb
input:
10000 16 1 -10 -6 -5 -6 -4 9 -2 5 -2 10 1 -7 1 -5 1 6 3 1 4 -9 6 -10 6 -3 6 1 8 -5 8 -4 9 -4 17 4 -9 2 -8 -4 -8 -3 -8 -1 -6 -2 -6 -1 -6 8 -5 -8 -5 10 -4 8 -2 -8 4 -9 4 0 5 -3 8 -5 9 -2 10 10 10 6 -7 2 -4 6 -2 -7 -2 -1 -1 7 1 -9 1 8 3 -4 7 -4 9 -2 14 3 -9 10 -8 -10 -8 -8 -6 -7 -6 -5 -1 -7 -1 -2 0 -1 ...
output:
1.6929914975 2.5748634361 4.6527582673 2.7726331074 5.7427658069 4.8576989910 3.4198923126 2.8127999621 6.2831853072 6.2831853072 5.1172807667 6.1467827028 3.8420890235 2.3424967168 3.4633432080 6.2831853072 5.9614347528 3.3247034709 5.2627749281 5.6724593428 1.6738779353 1.1141908549 2.4087775518 6...
result:
wrong answer 44th numbers differ - expected: '6.2831853', found: '6.2377620', error = '0.0072293'