結果
| 問題 | 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;
}
?>
            
            
            
        