QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#728376 | #9576. Ordainer of Inexorable Judgment | ucup-team073 | WA | 1ms | 4408kb | C++20 | 3.6kb | 2024-11-09 15:03:39 | 2024-11-09 15:03:40 |
Judging History
你现在查看的是最新测评结果
- [2024-12-23 14:23:26]
- hack成功,自动添加数据
- (/hack/1303)
- [2024-12-06 11:32:56]
- hack成功,自动添加数据
- (/hack/1271)
- [2024-11-14 21:58:28]
- hack成功,自动添加数据
- (/hack/1181)
- [2024-11-09 15:03:39]
- 提交
answer
#include<bits/stdc++.h>
#ifdef LOCAL
#define debug(...) printf(__VA_ARGS__)
#define edebug(...) fprintf(stderr, __VA_ARGS__)
#else
#define debug(...)
#define edebug(...)
#endif
#define int ll
#define rep(i, x, y) for(int i = x; i <= y; ++i)
#define nrep(i, x, y) for(int i = x; i >= y; --i)
#define ll long long
#define pii std::pair<int,int>
#define pb emplace_back
#define fi first
#define se second
template <class T>
inline void ckmax(T &a, T b) {
if(a < b) a = b;
}
template <class T>
inline void ckmin(T &a, T b) {
if(a > b) a = b;
}
auto rt_YES = []{puts("YES");};
auto rt_Yes = []{puts("Yes");};
auto rt_NO = []{puts("NO");};
auto rt_No = []{puts("No");};
namespace IO {
#define isdigit(x) (x >= '0' && x <= '9')
inline char gc() {
return getchar();
}
inline bool blank(char ch) {
return ch == ' ' || ch == '\n' || ch == '\r' || ch == '\t';
}
template <class T>
inline void read(T &x) {
double tmp = 1;
bool sign = 0;
x = 0;
char ch = gc();
for(; !isdigit(ch); ch = gc())
if(ch == '-') sign = 1;
for(; isdigit(ch); ch = gc())
x = x * 10 + (ch - '0');
if(ch == '.')
for(ch = gc(); isdigit(ch); ch = gc())
tmp /= 10.0, x += tmp * (ch - '0');
if(sign) x = -x;
}
inline void read(char *s) {
char ch = gc();
for(; blank(ch); ch = gc());
for(; !blank(ch); ch = gc())
*s++ = ch;
*s = 0;
}
inline void read(char &c) {
for(c = gc(); blank(c); c = gc());
}
inline void push(const char &c) {
putchar(c);
}
template <class T>
inline void print(T x) {
if(x < 0) {
x = -x;
push('-');
}
static T sta[35];
T top = 0;
do {
sta[top++] = x % 10;
x /= 10;
} while(x);
while(top)
push(sta[--top] + '0');
}
template <class T>
inline void print(T x, char lastChar) {
print(x);
push(lastChar);
}
}
using namespace IO;
const double PI = acos(-1.0);
int n,X,Y,d,t;
double Angle[210];
void solve(){
read(n),read(X),read(Y),read(d),read(t);
rep(i,1,n){
int x,y;read(x),read(y);
double AngleOX=atan2(y,x);
double AngleOC=PI/2-acos(d/std::hypot(x,y));
double A=AngleOX+AngleOC,B=AngleOX-AngleOC;
// A=PI/2-A,B=PI/2-B;
while(A>2*PI)A-=2*PI;
while(B>2*PI)B-=2*PI;
while(A<0)A+=2*PI;
while(B<0)B+=2*PI;
Angle[i*2-1]=A;
Angle[i*2]=B;
// debug("%lf %lf\n",AngleOC/PI*180,AngleOX/PI*180);
debug("%lf %lf\n",A/PI*180,B/PI*180);
}
std::sort(Angle+1,Angle+n*2+1);
Angle[n*2+1]=Angle[1]+2*PI;
int Round=t/(2*PI);double Rest=t-Round*(2*PI);
double ans=0;
rep(i,1,n*2)if(Angle[i+1]-Angle[i]>=PI){
debug("%lf %lf\n",Angle[i+1]/(PI)*180,Angle[i]/(PI)*180);
ans=Round*(2*PI-(Angle[i+1]-Angle[i]));
double STA=atan2(Y,X),EDA=STA+Rest;
double STR=Angle[i+1],EDR=Angle[i];
if(STR>=2*PI)STR-=2*PI;
if(STR>=EDR)EDR+=2*PI;
debug("%lf %lf %lf %lf\n",STA,EDA,STR,EDR);
ans+=std::max(0.0,std::min(EDA,EDR)-std::max(STA,STR));
debug("%lf\n",ans);
if(EDA>EDR&&STA>STR){
EDA-=2*PI;
ans+=std::max(0.0,EDA-STR);
}
else if(EDA<EDR&&STA<STR){
EDR-=2*PI;
ans+=std::max(0.0,EDR-STA);
}
}
printf("%.12lf\n",ans);
}
signed main() {
clock_t c1 = clock();
#ifdef LOCAL
freopen("in.in", "r", stdin);
freopen("out.out", "w", stdout);
#endif
//------------------------------------------------------------------
solve();
//------------------------------------------------------------------
end:
std::cerr << "Time : " << clock() - c1 << " ms" << std::endl;
return 0;
}
详细
Test #1:
score: 100
Accepted
time: 1ms
memory: 4404kb
input:
3 1 0 1 1 1 2 2 1 2 2
output:
1.000000000000
result:
ok found '1.0000000', expected '1.0000000', error '0.0000000'
Test #2:
score: 0
Accepted
time: 0ms
memory: 4400kb
input:
3 1 0 1 2 1 2 2 1 2 2
output:
1.570796326795
result:
ok found '1.5707963', expected '1.5707963', error '0.0000000'
Test #3:
score: 0
Accepted
time: 0ms
memory: 4256kb
input:
3 1 0 1 10000 1 2 2 1 2 2
output:
2500.707752257475
result:
ok found '2500.7077523', expected '2500.7077523', error '0.0000000'
Test #4:
score: 0
Accepted
time: 0ms
memory: 4208kb
input:
3 10000 10000 1 10000 10000 9999 10000 10000 9999 10000
output:
0.384241300289
result:
ok found '0.3842413', expected '0.3842413', error '0.0000000'
Test #5:
score: 0
Accepted
time: 0ms
memory: 4336kb
input:
3 -10000 -10000 10000 10000 -10000 -9999 -10000 -10000 -9999 -10000
output:
2500.240670009608
result:
ok found '2500.2406700', expected '2500.2406700', error '0.0000000'
Test #6:
score: 0
Accepted
time: 0ms
memory: 4208kb
input:
4 1 0 1 10000 -2 3400 -4 10000 -4 -10000 -2 -3400
output:
4999.219115408742
result:
ok found '4999.2191154', expected '4999.2191154', error '0.0000000'
Test #7:
score: 0
Accepted
time: 0ms
memory: 4296kb
input:
4 1 0 1 10000 -2 3300 -4 10000 -4 -10000 -2 -3300
output:
4999.200391854815
result:
ok found '4999.2003919', expected '4999.2003919', error '0.0000000'
Test #8:
score: 0
Accepted
time: 0ms
memory: 4300kb
input:
4 -3040 2716 2147 2 -9033 -8520 -8999 -8533 -8988 -8511 -9004 -8495
output:
0.350830058342
result:
ok found '0.3508301', expected '0.3508301', error '0.0000000'
Test #9:
score: 0
Accepted
time: 0ms
memory: 4408kb
input:
3 8168 -766 1549 1256 -3951 -6425 -3874 -6439 -3911 -6389
output:
84.832861161007
result:
ok found '84.8328612', expected '84.8328612', error '0.0000000'
Test #10:
score: 0
Accepted
time: 0ms
memory: 4336kb
input:
8 2977 -3175 8766 2 -4868 7759 -4867 7925 -4867 7950 -4886 7952 -4979 7953 -5048 7877 -5003 7761 -4936 7759
output:
0.327860646906
result:
ok found '0.3278606', expected '0.3278606', error '0.0000000'
Test #11:
score: 0
Accepted
time: 0ms
memory: 4292kb
input:
13 -1715 -4640 267 8651 272 6659 264 6660 208 6664 108 6625 107 6621 93 6564 90 6551 90 6485 124 6474 219 6477 283 6525 288 6591 286 6657
output:
153.589622784682
result:
ok found '153.5896228', expected '153.5896228', error '0.0000000'
Test #12:
score: 0
Accepted
time: 0ms
memory: 4320kb
input:
8 -9743 -7629 775 7 -194 981 -191 1720 -193 1845 -705 1929 -959 1950 -1131 1894 -1151 1604 -1031 1020
output:
2.046006204356
result:
ok found '2.0460062', expected '2.0460062', error '0.0000000'
Test #13:
score: 0
Accepted
time: 0ms
memory: 4400kb
input:
9 -6770 -1426 3491 1918 -2118 2886 -2063 3245 -2122 3709 -2129 3737 -2850 3718 -2984 3650 -3042 3462 -3028 2972 -2688 2888
output:
822.241184963715
result:
ok found '822.2411850', expected '822.2411850', error '0.0000000'
Test #14:
score: 0
Accepted
time: 0ms
memory: 4324kb
input:
12 1616 -7384 5256 10 -5607 2623 -5838 2843 -6117 2986 -6592 3169 -7129 3120 -7334 3069 -7406 2295 -7369 1712 -7091 1287 -6312 1252 -5596 1592 -5457 2088
output:
3.038765377139
result:
ok found '3.0387654', expected '3.0387654', error '0.0000000'
Test #15:
score: 0
Accepted
time: 0ms
memory: 4224kb
input:
10 -4546 5056 639 2996 4851 -3506 6078 -3725 6629 -3674 6775 -3296 6743 -2137 6585 -1866 5334 -1837 4950 -2020 4873 -2260 4852 -3240
output:
262.423969078938
result:
ok found '262.4239691', expected '262.4239691', error '0.0000000'
Test #16:
score: 0
Accepted
time: 0ms
memory: 4324kb
input:
20 4847 -6818 2502 2 -2164 -3844 -2453 -3826 -4654 -3818 -5073 -3829 -5212 -3833 -5828 -3921 -5889 -6065 -5896 -6716 -5877 -7349 -5855 -7457 -5619 -7711 -5485 -7786 -3743 -7809 -2345 -7747 -2075 -7682 -1960 -7364 -1900 -7015 -1901 -6391 -1922 -4091 -1968 -4028
output:
0.000000000000
result:
ok found '0.0000000', expected '0.0000000', error '-0.0000000'
Test #17:
score: 0
Accepted
time: 0ms
memory: 4316kb
input:
14 -1792 -5751 2349 4072 -3697 -4432 -4268 -4431 -6475 -4433 -7140 -4464 -7320 -4526 -7354 -5333 -7357 -5731 -7366 -7076 -7346 -7868 -7218 -8415 -4044 -8407 -3412 -8398 -3388 -7296 -3391 -4497
output:
758.966768347892
result:
ok found '758.9667683', expected '758.9667683', error '0.0000000'
Test #18:
score: 0
Accepted
time: 0ms
memory: 4324kb
input:
23 8820 -5943 927 1 -1319 -4435 -1321 -297 -1361 -149 -1379 -119 -1619 13 -6579 12 -7090 11 -7184 -5 -7209 -18 -7277 -62 -7316 -672 -7316 -5095 -7295 -5877 -7273 -5921 -7250 -5955 -6569 -5967 -5927 -5975 -4278 -5977 -2646 -5978 -1477 -5965 -1472 -5962 -1404 -5892 -1334 -5809
output:
0.000000000000
result:
ok found '0.0000000', expected '0.0000000', error '-0.0000000'
Test #19:
score: 0
Accepted
time: 0ms
memory: 4296kb
input:
22 -5664 7523 2588 8083 3456 2960 3446 2865 3433 2724 3432 615 3434 -1360 3446 -2929 3602 -2969 6204 -2972 8409 -2972 9227 -2969 9329 -2929 9375 -2890 9426 -2575 9432 2499 9432 2620 9390 2954 9386 2968 9277 3023 8340 3026 6809 3026 3634 3020 3600 3018
output:
3378.311740079399
result:
ok found '3378.3117401', expected '3378.3117401', error '0.0000000'
Test #20:
score: 0
Accepted
time: 0ms
memory: 4224kb
input:
19 -1886 -3232 561 6 -8846 -7186 -8842 -7658 -8705 -7660 -1521 -7660 -1248 -7658 -1048 -7654 -906 -7650 -877 -7643 -858 -7619 -846 -7598 -846 -1489 -847 -277 -851 311 -1001 332 -1072 340 -7480 340 -8844 337 -8845 332 -8846 -9
output:
2.268233383460
result:
ok found '2.2682334', expected '2.2682334', error '0.0000000'
Test #21:
score: -100
Wrong Answer
time: 0ms
memory: 4332kb
input:
27 -8996 -3721 1431 7076 5671 -1552 3604 -1551 1370 -1551 -1106 -1552 -1845 -1553 -1945 -1582 -1964 -1649 -1981 -1924 -1981 -7875 -1980 -8365 -1979 -8628 -1977 -8988 -1974 -9316 -1963 -9548 -1871 -9550 -1288 -9551 5996 -9551 6006 -9455 6010 -9391 6012 -9343 6014 -9271 6015 -9144 6019 -7478 6019 -263...
output:
3444.154381708374
result:
wrong answer 1st numbers differ - expected: '3442.5591737', found: '3444.1543817', error = '0.0004634'