QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#787392#9668. Isoball: 2D Versionrotcar07AC ✓2ms3756kbC++236.3kb2024-11-27 11:29:392024-11-27 11:29:39

Judging History

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

  • [2024-11-27 11:29:39]
  • 评测
  • 测评结果:AC
  • 用时:2ms
  • 内存:3756kb
  • [2024-11-27 11:29:39]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
struct time_helper{
#ifdef LOCAL
clock_t time_last;time_helper(){time_last=clock();}void test(){auto time_now=clock();std::cerr<<"time:"<<1.*(time_now-time_last)/CLOCKS_PER_SEC<<";all_time:"<<1.*time_now/CLOCKS_PER_SEC<<std::endl;time_last=time_now;}~time_helper(){test();}
#else
void test(){}
#endif
}time_helper;
#ifdef LOCAL
#include"dbg.h"
#else
#define dbg(...) (__VA_ARGS__)
#endif
namespace Fread{const int SIZE=1<<16;char buf[SIZE],*S,*T;inline char getchar(){if(S==T){T=(S=buf)+fread(buf,1,SIZE,stdin);if(S==T)return'\n';}return *S++;}}namespace Fwrite{const int SIZE=1<<16;char buf[SIZE],*S=buf,*T=buf+SIZE;inline void flush(){fwrite(buf,1,S-buf,stdout);S=buf;}inline void putchar(char c){*S++=c;if(S==T)flush();}struct NTR{~NTR(){flush();}}ztr;}
#define getchar Fread::getchar
#define putchar Fwrite::putchar
int print_precision=10;bool print_T_endl=1;char print_between=' ';
template<typename T>struct is_char{static constexpr bool value=(std::is_same<T,char>::value||std::is_same<T,signed char>::value||std::is_same<T,unsigned char>::value);};template<typename T>struct is_integral_ex{static constexpr bool value=(std::is_integral<T>::value||std::is_same<T,__int128>::value)&&!is_char<T>::value;};template<typename T>struct is_floating_point_ex{static constexpr bool value=std::is_floating_point<T>::value||std::is_same<T,__float128>::value;};namespace Fastio{struct Reader;struct Writer;template<size_t id>struct read_tuple{template<typename...T>static void read(Reader&stream,std::tuple<T...>&x){read_tuple<id-1>::read(stream,x);stream>>get<id-1>(x);}};template<>struct read_tuple<0>{template<typename...T>static void read([[maybe_unused]]Reader&stream,[[maybe_unused]]std::tuple<T...>&x){}};template<size_t id>struct print_tuple{template<typename...T>static void print(Writer&stream,const std::tuple<T...>&x){print_tuple<id-1>::print(stream,x);putchar(print_between);stream<<get<id-1>(x);}};template<>struct print_tuple<1>{template<typename...T>static void print(Writer&stream,const std::tuple<T...>&x){stream<<get<0>(x);}};template<>struct print_tuple<0>{template<typename...T>static void print([[maybe_unused]]Writer&stream,[[maybe_unused]]const std::tuple<T...>&x){}};
struct Reader{template<typename T>typename std::enable_if_t<std::is_class<T>::value,Reader&>operator>>(T&x){for(auto &y:x)*this>>y;return *this;}template<typename...T>Reader&operator>>(std::tuple<T...>&x){read_tuple<sizeof...(T)>::read(*this,x);return *this;}template<typename T>typename std::enable_if_t<is_integral_ex<T>::value,Reader&>operator>>(T&x){char c=getchar();short f=1;while(c<'0'||c>'9'){if(c=='-')f*=-1;c=getchar();}x=0;while(c>='0'&&c<='9'){x=(x<<1)+(x<<3)+(c^48);c=getchar();}x*=f;return *this;}template<typename T>typename std::enable_if_t<is_floating_point_ex<T>::value,Reader&>operator>>(T&x){char c=getchar();short f=1,s=0;x=0;T t=0;while((c<'0'||c>'9')&&c!='.'){if(c=='-')f*=-1;c=getchar();}while(c>='0'&&c<='9'&&c!='.')x=x*10+(c^48),c=getchar();if(c=='.')c=getchar();else return x*=f,*this;while(c>='0'&&c<='9')t=t*10+(c^48),s++,c=getchar();while(s--)t/=10.0;x=(x+t)*f;return*this;}template<typename T>typename std::enable_if_t<is_char<T>::value,Reader&>operator>>(T&c){c=getchar();while(c=='\n'||c==' '||c=='\r')c=getchar();return *this;}Reader&operator>>(char*str){int len=0;char c=getchar();while(c=='\n'||c==' '||c=='\r')c=getchar();while(c!='\n'&&c!=' '&&c!='\r')str[len++]=c,c=getchar();str[len]='\0';return*this;}template<typename T1,typename T2>Reader&operator>>(std::pair<T1,T2>&x){*this>>x.first>>x.second;return *this;}Reader&operator>>(std::string&str){str.clear();char c=getchar();while(c=='\n'||c==' '||c=='\r')c=getchar();while(c!='\n'&&c!=' '&&c!='\r')str.push_back(c),c=getchar();return*this;}Reader(){}}cin;const char endl='\n';
struct Writer{typedef __int128 mxdouble;template<typename T>typename std::enable_if_t<std::is_class<T>::value,Writer&>operator<<(const T&x){for(auto q:x){*this<<q;if(!is_class<decltype(q)>::value)*this<<print_between;}if(!is_class<typename T::value_type>::value&&print_T_endl)*this<<'\n';return *this;}template<typename...T>Writer&operator<<(const std::tuple<T...>&x){print_tuple<sizeof...(T)>::print(*this,x);if(print_T_endl)*this<<'\n';return *this;}template<typename T>typename std::enable_if_t<is_integral_ex<T>::value,Writer&>operator<<(T x){if(x==0)return putchar('0'),*this;if(x<0)putchar('-'),x=-x;static int sta[45];int top=0;while(x)sta[++top]=x%10,x/=10;while(top)putchar(sta[top]+'0'),--top;return*this;}template<typename T>typename std::enable_if_t<is_floating_point_ex<T>::value,Writer&>operator<<(T x){if(x<0)putchar('-'),x=-x;x+=pow(10,-print_precision)/2;mxdouble _=x;x-=(T)_;static int sta[45];int top=0;while(_)sta[++top]=_%10,_/=10;if(!top)putchar('0');while(top)putchar(sta[top]+'0'),--top;putchar('.');for(int i=0;i<print_precision;i++)x*=10;_=x;while(_)sta[++top]=_%10,_/=10;for(int i=0;i<print_precision-top;i++)putchar('0');while(top)putchar(sta[top]+'0'),--top;return*this;}template<typename T>typename std::enable_if_t<is_char<T>::value,Writer&>operator<<(const T&c){putchar(c);return*this;}Writer&operator<<(char*str){int cur=0;while(str[cur])putchar(str[cur++]);return *this;}Writer&operator<<(const char*str){int cur=0;while(str[cur])putchar(str[cur++]);return*this;}template<typename T1,typename T2>Writer&operator<<(const std::pair<T1,T2>&x){*this<<x.first<<print_between<<x.second;if(print_T_endl)*this<<'\n';return *this;}Writer&operator<<(const std::string&str){int st=0,ed=str.size();while(st<ed)putchar(str[st++]);return*this;}Writer(){}}cout;}
#define cin Fastio::cin
#define cout Fastio::cout
#define endl Fastio::endl
typedef long long ll;
inline bool solve(){
    int bxl,bxr,byl,byr,vx,vy,A,B,C;
    cin>>A>>B>>C>>vx>>vy>>bxl>>byl>>bxr>>byr;
    bxl+=C,byl+=C,bxr-=C,byr-=C;
    if(vx<0) A=-A,bxl=-bxl,bxr=-bxr,vx=-vx,swap(bxl,bxr);
    if(vy<0) B=-B,byl=-byl,byr=-byr,vy=-vy,swap(byl,byr);
    ll L=0,R=1e18;
    if(!vx){
        if(A<bxl||A>bxr) return 0;
        L=max<ll>(L,byl-B);R=min<ll>(R,byr-B);
    }
    else if(!vy){
        if(B<byl||B>byr) return 0;
        L=max<ll>(L,bxl-A);R=min<ll>(R,bxr-A);
    }
    else{
        L=max({L,(bxl-A)*1ll*vy,(byl-B)*1ll*vx});
        R=min({R,(bxr-A)*1ll*vy,(byr-B)*1ll*vx});
    }
    return L<=R;
}
int main(){
    int t;cin>>t;
    while(t--) puts(solve()?"Yes":"No");
}

这程序好像有点Bug,我给组数据试试?

詳細信息

Test #1:

score: 100
Accepted
time: 0ms
memory: 3492kb

input:

5
0 0 1 1 0
2 -2 6 2
0 0 1 1 0
2 0 6 2
0 0 1 1 1
1 1 3 3
0 0 1 -1 -1
1 1 3 3
0 0 1 -1 1
-5 -5 5 5

output:

Yes
No
Yes
No
Yes

result:

ok 5 lines

Test #2:

score: 0
Accepted
time: 0ms
memory: 3532kb

input:

2
0 0 1000000 1000000 1000000
-1000000 -1000000 1000000 1000000
1000000 1000000 1 -1000000 -1000000
-1000000 -1000000 -999999 -999999

output:

Yes
No

result:

ok 2 lines

Test #3:

score: 0
Accepted
time: 0ms
memory: 3756kb

input:

10000
10 -10 10 1 -2
-13 -8 6 -1
-7 -10 3 3 1
-3 -12 14 -9
-9 -2 4 4 -3
-11 7 -8 12
-3 1 8 -1 0
-11 1 19 13
-1 8 9 -3 2
11 -5 17 4
-2 -7 3 -3 5
-12 -14 10 1
0 3 6 -5 3
-11 2 2 16
4 9 6 5 -4
-8 -11 18 -1
0 0 8 4 -2
-10 -15 1 12
8 4 4 5 2
-17 3 8 7
-3 7 10 -4 0
1 0 10 20
-6 -10 5 -3 -1
-20 -20 15 7
5 ...

output:

No
No
No
No
No
Yes
No
No
No
No
No
Yes
No
Yes
No
No
Yes
No
Yes
No
No
No
No
No
Yes
No
No
No
Yes
No
No
No
Yes
No
No
Yes
No
No
No
No
No
No
No
No
No
No
No
No
Yes
No
No
No
No
No
No
No
No
No
Yes
Yes
No
No
Yes
Yes
Yes
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
Yes...

result:

ok 10000 lines

Test #4:

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

input:

10000
435040 443595 65698 -909008 707638
-786096 -552413 -684992 853567
662291 -64591 243223 870386 898512
-302221 -384430 747067 -262550
-626562 -285970 945616 -695143 223635
14005 -632139 169681 481076
-955128 470568 284454 -511490 -623372
-465039 -713986 477856 -675726
304873 -693785 286659 -9272...

output:

No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
Yes
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
Yes
No
No
No
No
No
No
Yes
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
...

result:

ok 10000 lines

Test #5:

score: 0
Accepted
time: 1ms
memory: 3668kb

input:

10000
2 -1000000 1 0 1
-6 999998 1 1000000
0 -1000000 1 0 1
-3 999998 -1 999999
4 -1000000 1 0 1
-1 999996 6 999999
1 -1000000 1 0 -1
0 999998 2 999999
2 -1000000 1 0 1
-1 999997 4 999999
1 -1000000 1 0 1
-2 999998 2 1000000
-4 -1000000 1 0 1
-5 999997 -4 999999
-3 -1000000 1 0 1
-3 999996 -2 100000...

output:

No
No
Yes
No
Yes
Yes
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
Yes
No
Yes
No
No
No
No
No
No
Yes
No
No
No
No
Yes
No
No
No
No
No
No
No
No
No
No
No
No
No
Yes
No
No
No
No
No
No
No
No
No
No
No
No
No
Yes
No
No
No
Yes
No
No
No
No
No
No
No
No
No
No
Yes
Yes
No
No
No
No
No
No
Yes
Yes
No
No
No
No
No
N...

result:

ok 10000 lines

Test #6:

score: 0
Accepted
time: 1ms
memory: 3732kb

input:

10000
-1000000 -2 1 1 0
999998 -6 1000000 6
-1000000 -5 1 -1 0
999996 -2 1000000 3
-1000000 2 1 1 0
999998 0 999999 4
-1000000 -5 1 -1 0
999997 0 999998 5
-1000000 -3 1 -1 0
999997 -7 1000000 -2
-1000000 0 1 -1 0
999996 4 999997 6
-1000000 -2 1 1 0
999998 3 999999 6
-1000000 -3 1 -1 0
999996 -3 1000...

output:

Yes
No
No
No
No
No
No
No
No
Yes
No
No
No
No
No
No
No
Yes
No
No
No
No
No
No
No
No
No
No
No
Yes
Yes
No
No
No
No
No
No
No
No
Yes
No
No
No
No
No
No
No
No
No
Yes
No
No
No
No
Yes
Yes
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
Yes
Yes
No
No
No
No
No
No
Yes
No
No
No
No
No
Yes
Ye...

result:

ok 10000 lines

Test #7:

score: 0
Accepted
time: 1ms
memory: 3672kb

input:

10000
-1000000 -1000000 39 2 0
19265 57834 60609 77684
-1000000 -1000000 22 -1 2
16667 94521 76708 97725
-1000000 -1000000 75 1 1
2120 9797 44577 47582
-1000000 -1000000 61 2 0
2400 15626 21867 21831
-1000000 -1000000 39 0 -1
32558 37142 66755 56056
-1000000 -1000000 64 1 2
33672 45285 53247 46521
-...

output:

No
No
Yes
No
No
No
Yes
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
Yes
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No
Yes
Yes
No
No
No
No
No
No
No
No
Yes
No
No
No
No
No
No
No
No
Yes
No
No
No
No
No
No
No
No
No
Yes
N...

result:

ok 10000 lines

Extra Test:

score: 0
Extra Test Passed