結果
| 問題 |
No.2540 同値性判定
|
| コンテスト | |
| ユーザー |
👑 |
| 提出日時 | 2023-07-29 22:15:51 |
| 言語 | cLay (20241019-1) |
| 結果 |
AC
|
| 実行時間 | 27 ms / 2,500 ms |
| コード長 | 825 bytes |
| コンパイル時間 | 3,023 ms |
| コンパイル使用メモリ | 187,940 KB |
| 実行使用メモリ | 13,760 KB |
| 最終ジャッジ日時 | 2024-10-08 08:33:41 |
| 合計ジャッジ時間 | 7,533 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 37 |
ソースコード
struct U{ull a,b;bool c;U(ull A=-1,ull B=0,bool C=false):a(A),b(B),c(C){};};
ull O(const U& b,const ull& a){return (b.c?~a:a)&b.a|b.b;}
void C(const U& f,U& b){b=f.c?U(~b.b&f.a,~b.a&~b.b&f.a|f.b,!b.c):U(b.a&f.a,b.b&f.a|f.b,b.c);}
{
ull@N,@Q,P[6]={},M=1000,A[N],h,l,r,x,y,a,m,n,u;U B[M]={},f;
rep(i,6)rep(d,64)P[i]+=((d>>i)&1ULL)<<d;
rep(i,N)A[i]=P[i%6];
string E="land",o;
rep(Q){
rd(h,o,l,r,x,y);
r++;y++;
a=O(B[h/M],A[h]);
f=o==E?U(a):U(-1,a,o<E);
m=(l+M-1)/M;
n=max(m,r/M);
u=min(m*M,r);
if(m){rep(i,m*M-M,min(m*M,N))A[i]=O(B[m-1],A[i]);B[m-1]=U();}
rep(i,l,u)A[i]=O(f,A[i]);
rep(j,m,n)C(f,B[j]);
rep(i,n*M,min(n*M+M,N))A[i]=O(B[n],A[i]);
if(n*M<N)B[n]=U();
rep(i,max(u,n*M),r)A[i]=O(f,A[i]);
set<ull>X;
o="No";
rep(i,x,y){
a=O(B[i/M],A[i]);
if(X.count(a)){o="Yes";break;}
X.insert(a);
}
wt(o);
}
}