結果

問題 No.1306 Exactly 2 Digits
ユーザー tails
提出日時 2020-12-03 17:27:19
言語 Perl
(5.40.0)
結果
AC  
実行時間 176 ms / 2,000 ms
コード長 600 bytes
コンパイル時間 52 ms
コンパイル使用メモリ 6,944 KB
実行使用メモリ 25,452 KB
平均クエリ数 1236.78
最終ジャッジ日時 2024-07-17 08:48:41
合計ジャッジ時間 16,302 ms
ジャッジサーバーID
(参考情報)
judge5 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 123
権限があれば一括ダウンロードができます
コンパイルメッセージ
Main.pl syntax OK

ソースコード

diff #

$|=1;
$n=<>;

for$v(2..$n*($n-1)){
	print "? $v 1\n";
	$k=<>;
	($a,$b)=glob$k;
	push @{$h{$k}},$v;
	$amin=$a if $amin>$a;
	$amax=$a if $amax<$a;
	$bmin=$b if $bmin>$b;
	$bmax=$b if $bmax<$b;
	$c=$v if $a==$amin && $b==$bmax;
}

if($amax-$amin>$bmax-$bmin){
	$na=1; $nb=$n;
}else{
	$na=$n; $nb=1;
}

sub mkn{
	($_[0]-$amin)*$na+($_[1]-$bmin)*$nb+$n;
}

$z[0]=mkn(0,0);
for$k(keys(%h)){
	($a,$b)=glob$k;
	($v0,$v1)=@{$h{$k}};
	if($v1){
		print "? $c $v0\n";
		($a1,$b1)=glob<>;
		if($b1-$a1>$bmax-$amin){
			($v0,$v1)=($v1,$v0);
		}
		$z[$v1-1]=mkn($b,$a);
	}
	$z[$v0-1]=mkn($a,$b);
}

print "! @z\n";
0