結果

問題 No.1306 Exactly 2 Digits
ユーザー tailstails
提出日時 2020-12-03 17:11:48
言語 Perl
(5.40.0)
結果
AC  
実行時間 178 ms / 2,000 ms
コード長 1,235 bytes
コンパイル時間 522 ms
コンパイル使用メモリ 7,068 KB
実行使用メモリ 25,220 KB
平均クエリ数 1236.78
最終ジャッジ日時 2024-07-17 08:48:20
合計ジャッジ時間 16,302 ms
ジャッジサーバーID
(参考情報)
judge2 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
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){
	# (a,b)=(lo,hi)
	$z[0]=(0-$amin)+$n*(0-$bmin)+$n;
	for$k(keys(%h)){
		($a,$b)=glob$k;
		if(@{$h{$k}}==2){
			($v0,$v1)=@{$h{$k}};
			print "? $c $v0\n";
			($a1,$b1)=glob<>;
			if($b1-$a1>$bmax-$amin){
				$z[$v0-1]=($b-$amin)+$n*($a-$bmin)+$n;
				$z[$v1-1]=($a-$amin)+$n*($b-$bmin)+$n;
			}else{
				$z[$v0-1]=($a-$amin)+$n*($b-$bmin)+$n;
				$z[$v1-1]=($b-$amin)+$n*($a-$bmin)+$n;
			}
		}else{
			$v=${$h{$k}}[0];
			$z[$v-1]=($a-$amin)+$n*($b-$bmin)+$n;
		}
	}
}else{
	# (a,b)=(hi,lo)
	$z[0]=(0-$bmin)+$n*(0-$amin)+$n;
	for$k(keys(%h)){
		($a,$b)=glob$k;
		if(@{$h{$k}}==2){
			$v0=${$h{$k}}[0];
			$v1=${$h{$k}}[1];
			print "? $c $v0\n";
			($a1,$b1)=glob<>;
			if($b1-$a1>$bmax-$amin){
				$z[$v0-1]=($a-$bmin)+$n*($b-$amin)+$n;
				$z[$v1-1]=($b-$bmin)+$n*($a-$amin)+$n;
			}else{
				$z[$v0-1]=($b-$bmin)+$n*($a-$amin)+$n;
				$z[$v1-1]=($a-$bmin)+$n*($b-$amin)+$n;
			}
		}else{
			$v=${$h{$k}}[0];
			$z[$v-1]=($b-$bmin)+$n*($a-$amin)+$n;
		}
	}
}

print "! @z\n";
0