結果

問題 No.1315 渦巻洞穴
ユーザー tailstails
提出日時 2020-12-13 01:43:35
言語 C
(gcc 12.3.0)
結果
AC  
実行時間 2 ms / 2,000 ms
コード長 1,194 bytes
コンパイル時間 391 ms
コンパイル使用メモリ 33,052 KB
実行使用メモリ 4,348 KB
最終ジャッジ日時 2023-10-20 02:54:52
合計ジャッジ時間 4,053 ms
ジャッジサーバーID
(参考情報)
judge13 / judge11
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 1 ms
4,348 KB
testcase_01 AC 1 ms
4,348 KB
testcase_02 AC 1 ms
4,348 KB
testcase_03 AC 1 ms
4,348 KB
testcase_04 AC 1 ms
4,348 KB
testcase_05 AC 1 ms
4,348 KB
testcase_06 AC 1 ms
4,348 KB
testcase_07 AC 1 ms
4,348 KB
testcase_08 AC 1 ms
4,348 KB
testcase_09 AC 1 ms
4,348 KB
testcase_10 AC 1 ms
4,348 KB
testcase_11 AC 1 ms
4,348 KB
testcase_12 AC 1 ms
4,348 KB
testcase_13 AC 1 ms
4,348 KB
testcase_14 AC 1 ms
4,348 KB
testcase_15 AC 1 ms
4,348 KB
testcase_16 AC 1 ms
4,348 KB
testcase_17 AC 1 ms
4,348 KB
testcase_18 AC 1 ms
4,348 KB
testcase_19 AC 1 ms
4,348 KB
testcase_20 AC 1 ms
4,348 KB
testcase_21 AC 1 ms
4,348 KB
testcase_22 AC 1 ms
4,348 KB
testcase_23 AC 1 ms
4,348 KB
testcase_24 AC 1 ms
4,348 KB
testcase_25 AC 1 ms
4,348 KB
testcase_26 AC 1 ms
4,348 KB
testcase_27 AC 1 ms
4,348 KB
testcase_28 AC 1 ms
4,348 KB
testcase_29 AC 1 ms
4,348 KB
testcase_30 AC 1 ms
4,348 KB
testcase_31 AC 1 ms
4,348 KB
testcase_32 AC 1 ms
4,348 KB
testcase_33 AC 1 ms
4,348 KB
testcase_34 AC 1 ms
4,348 KB
testcase_35 AC 1 ms
4,348 KB
testcase_36 AC 1 ms
4,348 KB
testcase_37 AC 1 ms
4,348 KB
testcase_38 AC 1 ms
4,348 KB
testcase_39 AC 1 ms
4,348 KB
testcase_40 AC 1 ms
4,348 KB
testcase_41 AC 1 ms
4,348 KB
testcase_42 AC 1 ms
4,348 KB
testcase_43 AC 2 ms
4,348 KB
testcase_44 AC 1 ms
4,348 KB
testcase_45 AC 1 ms
4,348 KB
testcase_46 AC 1 ms
4,348 KB
testcase_47 AC 1 ms
4,348 KB
testcase_48 AC 1 ms
4,348 KB
testcase_49 AC 1 ms
4,348 KB
testcase_50 AC 1 ms
4,348 KB
testcase_51 AC 2 ms
4,348 KB
testcase_52 AC 1 ms
4,348 KB
testcase_53 AC 1 ms
4,348 KB
testcase_54 AC 1 ms
4,348 KB
testcase_55 AC 1 ms
4,348 KB
testcase_56 AC 1 ms
4,348 KB
testcase_57 AC 1 ms
4,348 KB
testcase_58 AC 1 ms
4,348 KB
testcase_59 AC 1 ms
4,348 KB
testcase_60 AC 1 ms
4,348 KB
testcase_61 AC 1 ms
4,348 KB
testcase_62 AC 1 ms
4,348 KB
testcase_63 AC 1 ms
4,348 KB
testcase_64 AC 1 ms
4,348 KB
testcase_65 AC 1 ms
4,348 KB
testcase_66 AC 1 ms
4,348 KB
testcase_67 AC 1 ms
4,348 KB
testcase_68 AC 1 ms
4,348 KB
testcase_69 AC 1 ms
4,348 KB
testcase_70 AC 1 ms
4,348 KB
testcase_71 AC 1 ms
4,348 KB
testcase_72 AC 1 ms
4,348 KB
testcase_73 AC 1 ms
4,348 KB
testcase_74 AC 1 ms
4,348 KB
testcase_75 AC 1 ms
4,348 KB
testcase_76 AC 1 ms
4,348 KB
testcase_77 AC 1 ms
4,348 KB
testcase_78 AC 1 ms
4,348 KB
testcase_79 AC 1 ms
4,348 KB
testcase_80 AC 1 ms
4,348 KB
testcase_81 AC 1 ms
4,348 KB
権限があれば一括ダウンロードができます
コンパイルメッセージ
main.c: In function 'locate':
main.c:7:20: warning: implicit declaration of function 'sqrt' [-Wimplicit-function-declaration]
    7 |         int r=(int)sqrt(s-1)+1&~1;
      |                    ^~~~
main.c:1:1: note: include '<math.h>' or provide a declaration of 'sqrt'
  +++ |+#include <math.h>
    1 | #pragma GCC optimize("Ofast")
main.c:7:20: warning: incompatible implicit declaration of built-in function 'sqrt' [-Wbuiltin-declaration-mismatch]
    7 |         int r=(int)sqrt(s-1)+1&~1;
      |                    ^~~~
main.c:7:20: note: include '<math.h>' or provide a declaration of 'sqrt'
main.c: In function 'move':
main.c:29:27: warning: multi-character character constant [-Wmultichar]
   29 |                 *(int*)wp='RRLR';
      |                           ^~~~~~
main.c:34:27: warning: multi-character character constant [-Wmultichar]
   34 |                 *(int*)wp='LLRL';
      |                           ^~~~~~
main.c:42:27: warning: multi-character character constant [-Wmultichar]
   42 |                 *(int*)wp='DDUD';
      |                           ^~~~~~
main.c:47:27: warning: multi-character character constant [-Wmultichar]
   47 |                 *(int*)wp='UUDU';
      |                           ^~~~~~
main.c: In function 'main':
main.c:55:9: warning: implicit declaration of function 'read' [-Wimplicit-function-declaration]
   55 |         read(0,buf,32);
      |         ^~~~
main.c:68:27: warning: multi-character character constant [-Wmultichar]
   68 |                 *(int*)wp='LURL';
      |                           ^~~~~~
main.c:73:27: warning: multi-character character constant [-Wmultichar]
   73 |                 *(int*)wp='DLUR';
      |                           ^~~~~~
main.c:75:27: warning: multi-character character constant [-Wmultichar]
   75 |                 *(int*)wp='DU';
      |                           ^~~~
main.c:86:9: warning: implicit declaration of function 'write' [-Wimplicit-function-declaration]
   86 |        

ソースコード

diff #

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

#define RD(v) int v=0;{int _c;while(_c=*rp++-48,_c>=0)v=v*10+_c;}

void locate(int s,int*px,int*py){
	int r=(int)sqrt(s-1)+1&~1;
	int r1=r>>1;
	int t=(r+1)*(r+1)-s;
	if(t<r){
		*px=r1-t;
		*py=r1;
	}else if(t-=r,t<r){
		*px=-r1;
		*py=r1-t;
	}else if(t-=r,t<r){
		*px=-r1+t;
		*py=-r1;
	}else if(t-=r,1){
		*px=r1;
		*py=-r1+t;
	}
}

char buf[200040],*wp;

void move(int x,int y){
	while(x>0){
		*(int*)wp='RRLR';
		wp+=4;
		x-=2;
	}
	while(x<0){
		*(int*)wp='LLRL';
		wp+=4;
		x+=2;
	}
	if(x){
		wp[-1]='U';++y;
	}
	while(y>0){
		*(int*)wp='DDUD';
		wp+=4;
		y-=2;
	}
	while(y<0){
		*(int*)wp='UUDU';
		wp+=4;
		y+=2;
	}
	--wp;
}

int main(){
	read(0,buf,32);
	char*rp=buf;
	RD(s);
	RD(t);
	int sx,sy,tx,ty;
	locate(s,&sx,&sy);
	locate(t,&tx,&ty);

	wp=buf+32;
	if(s+t&1){
		move(tx-sx,ty-sy);
	}else if(s&1){
		move(1-sx,0-sy);
		*(int*)wp='LURL';
		wp+=4;
		move(tx-0,ty+1);
	}else{
		move(0-sx,0-sy);
		*(int*)wp='DLUR';
		wp+=4;
		*(int*)wp='DU';
		wp+=2;
		move(tx-0,ty-0);
	}
	char*wp2=buf+32;
	int n=wp-wp2;
	*wp++='\n';
	*--wp2='\n';
	while(*--wp2=n%10+'0',n/=10);
	*--wp2='\n';
	*--wp2='0';
	write(1,wp2,wp-wp2);
	_exit(0);
}
0