結果
| 問題 |
No.6 使いものにならないハッシュ
|
| コンテスト | |
| ユーザー |
mino_yellow
|
| 提出日時 | 2022-11-16 02:47:44 |
| 言語 | PHP (843.2) |
| 結果 |
AC
|
| 実行時間 | 69 ms / 5,000 ms |
| コード長 | 1,085 bytes |
| コンパイル時間 | 2,632 ms |
| コンパイル使用メモリ | 32,144 KB |
| 実行使用メモリ | 36,664 KB |
| 最終ジャッジ日時 | 2024-09-17 01:04:15 |
| 合計ジャッジ時間 | 5,301 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge6 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 32 |
コンパイルメッセージ
No syntax errors detected in Main.php
ソースコード
<?php
fscanf(STDIN,"%d",$K);
fscanf(STDIN,"%d",$N);
$p = sosuFlags($N);
$memo = [];
for($i=0,$n=count($p);$i<$n;++$i) $ph[] = hash_($p[$i]);
$max = [-1,-1];
for($i=0;$i<$n;++$i){
$nums = [];
$j = $i;
while($j < $n && !isset($nums[$ph[$j]])){
$nums[$ph[$j]] = true;
++$j;
}
if($j-$i >= $max[0]){
$max[0] = $j-$i;
$max[1] = $i;
}
}
echo $p[$max[1]] . PHP_EOL;
function hash_($x){
global $memo;
$x = strval($x);
if(isset($memo[$x])) return $memo[$x];
$num = 0;
for($i=0,$len=strlen($x);$i<$len;++$i) $num += $x[$i];
if($num < 10){
$memo[$x] = $num;
return $num;
}else{
$memo[$x] = hash_($num);
return $memo[$x];
}
}
function sosuFlags($x){
global $K;
$flags = array_fill(0,$x+1,true);
$flags[0] = $flags[1] = false;
$sq = ceil(sqrt($x));
for($i=2;$i<$sq;++$i){
if(!$flags[$i]) continue;
for($j=$i*$i;$j<=$x;$j+=$i) $flags[$j] = false;
}
$a = [];
for($i=$K;$i<=$x;++$i) if($flags[$i]) $a[] = $i;
return $a;
}
?>
mino_yellow