結果

問題 No.3378 Go Board
コンテスト
ユーザー 👑 tails
提出日時 2025-11-27 10:19:49
言語 C
(gcc 13.3.0)
結果
AC  
実行時間 3 ms / 2,000 ms
コード長 1,394 bytes
コンパイル時間 440 ms
コンパイル使用メモリ 28,928 KB
実行使用メモリ 7,848 KB
最終ジャッジ日時 2025-11-27 10:19:57
合計ジャッジ時間 7,162 ms
ジャッジサーバーID
(参考情報)
judge5 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other AC * 22
権限があれば一括ダウンロードができます
コンパイルメッセージ
main.c: In function ‘main’:
main.c:67:9: warning: implicit declaration of function ‘write’ [-Wimplicit-function-declaration]
   67 |         write(1,wbuf,wp-wbuf);
      |         ^~~~~
main.c:68:9: warning: implicit declaration of function ‘_exit’ [-Wimplicit-function-declaration]
   68 |         _exit(0);
      |         ^~~~~
main.c:68:9: warning: incompatible implicit declaration of built-in function ‘_exit’ [-Wbuiltin-declaration-mismatch]

ソースコード

diff #
raw source code

#pragma GCC optimize("Ofast")
#pragma GCC target("avx2")

#define rd_init() char*rp=({char*mmap();mmap(0l,1l<<25,1,2,0,0ll);})
#define rd() ({int _v=0,_c;while(_c=*rp++-48,_c>=0)_v=_v*10+_c;_v;})
#define rep(v,e) for(typeof(e)v=0;v<e;++v)
#define rrep(v,e) for(typeof(e)v=e;v--;)
#define repeat(e) for(typeof(e)_=e;_--;)

char wbuf[1<<25];

int main(){
	char*wp=wbuf;
	rd_init();
	repeat(rd()){
		if(rp[0]=='2'&&rp[1]==' '){
			if(rp[2]=='2'){
				*wp++='Y'; *wp++='e'; *wp++='s'; *wp++='\n';
				*wp++='#'; *wp++='#'; *wp++='\n';
				*wp++='.'; *wp++='.'; *wp++='\n';
			}else{
				*wp++='N'; *wp++='o'; *wp++='\n';
			}
			rp+=4;
		}else{
			int n=rd();
			int k=rd();
			if(k<3||k*2>n*n){
				*wp++='N'; *wp++='o'; *wp++='\n';
			}else{
				*wp++='Y'; *wp++='e'; *wp++='s'; *wp++='\n';
				if(k<n){
					repeat(k-1){
						*wp++='#';
					}
					repeat(n-(k-1)){
						*wp++='.';
					}
					*wp++='\n';
					*wp++='#';
					repeat(n-1){
						*wp++='.';
					}
					*wp++='\n';
					repeat(n-2){
						repeat(n){
							*wp++='.';
						}
						*wp++='\n';
					}
				}else{
					int a=n*n-(k*2-n);
					int b=k-(k*2-n)/n*((n+2)/3)-((k*2-n)%n+1)/3-((k*2-n)%n>n-2&&(k*2-n)%n%3<2);
					rep(y,n){
						rrep(x,n){
							*wp++=
								a?--a,'.':
								(x<n-2?x%3==1:x==n-2)?'#':
								b?--b,'#':'.';
						}
						*wp++='\n';
					}
				}
			}
		}
	}
	write(1,wbuf,wp-wbuf);
	_exit(0);
}
0