結果

問題 No.2696 Sign Creation
ユーザー tailstails
提出日時 2024-03-22 23:21:17
言語 cLay
(20241019-1)
結果
AC  
実行時間 377 ms / 2,500 ms
コード長 872 bytes
コンパイル時間 4,245 ms
コンパイル使用メモリ 185,148 KB
実行使用メモリ 27,720 KB
最終ジャッジ日時 2024-12-20 12:32:00
合計ジャッジ時間 6,419 ms
ジャッジサーバーID
(参考情報)
judge5 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 38
権限があれば一括ダウンロードができます

ソースコード

diff #

ll@h,@w,@n,@d,@(x--,y--)[n],f[h][w]{},z=0,inc=0,dec=0;
unionFind u('m',n+1,1);
rep(i,n){
	f[x[i]][y[i]]=i+1;
	rep(a,x[i]-d,x[i]+d+1){
		if(a>=0&&a<h){
			ll e=d-abs(a-x[i]);
			rep(b,y[i]-e,y[i]+e+1){
				if(b>=0&&b<w){
					if(f[a][b]){
						u(i+1,f[a][b]);
					}
				}
			}
		}
	}
}
unordered_set<ll> s[h][w]; //!!
rep(i,n){
	if(u.size(i+1)>1){
		ll r=u(i+1);
		z+=i+1==r;
		rep(a,x[i]-d,x[i]+d+1){
			if(a>=0&&a<h){
				ll e=d-abs(a-x[i]);
				rep(b,y[i]-e,y[i]+e+1){
					if(b>=0&&b<w){
						s[a][b].insert(r);
					}
				}
			}
		}
	}
}
rep(i,n){
	if(u.size(i+1)==1){
		rep(a,x[i]-d,x[i]+d+1){
			if(a>=0&&a<h){
				ll e=d-abs(a-x[i]);
				rep(b,y[i]-e,y[i]+e+1){
					if(b>=0&&b<w){
						if(!f[a][b]&&s[a][b].empty()){
							inc=1;
						}
					}
				}
			}
		}
	}
}
rep(a,h){
	rep(b,w){
		if(!f[a][b]){
			dec>?=(ll)s[a][b].size()-1;
		}
	}
}
wt(z-dec,z+inc);
0