Submission #163183


Source Code Expand

<?php
$DEBUG = 0;
//$DEBUG = 1;

if ($DEBUG)
{
    ini_set('display_errors', 'On');
    ini_set('error_reporting', E_ALL & ~E_NOTICE);
    $time_s = microtime(TRUE);
}

# 読み込み
fscanf(STDIN, "%d %d", $A, $B);

$targetNumber = $A;
$ret = 0;

/*
$cnt = 0;
for ($i = 100000; $i < 200000; $i++)
{
    $flag = TRUE;
    //echo strlen($i);
    for ($j = 0; $j < strlen($i); $j++)
    {
        //echo "Q{$j}";
        if (substr($i, $j, 1) == '4' || substr($i, $j, 1) == '9')
        {
            $flag = FALSE;
            break;
        }
    }
    if ($flag === TRUE) {
        $cnt++;
    } else
    {
        echo $i.PHP_EOL;
    
    }
    //echo "\n";
}
echo $cnt;
exit($cnt);
*/

while (TRUE)
{
    if ($targetNumber > $B) break;

    $scale = 0;
    $scale2 = 0;

    // 末尾0が何桁あるか取得
    $targetLength = strlen($targetNumber);
    for ($i = $targetLength; $i > 0; $i--)
    {
        if (substr($targetNumber, $targetLength-$i, $i) == str_repeat("0", $i))
        {
            $scale = $i;
            break;
        }
    }
    //echo $scale . PHP_EOL;
    
    // そのスケールの先が$Bより小さいか
    for ($i = $scale; $i > 0; $i--)
    {
        $intDest = $targetNumber + pow(10, $i);
        //echo "\$intDest = {$intDest} {$B}\n";
        if ($intDest <= $B+1)
        {
            $scale2 = $i;
            break;
        }
    }
    //echo "scale2={$scale2}\n";

    $flag = TRUE;
    //echo strlen($i);
    for ($j = 0; $j < strlen($targetNumber); $j++)
    {
        //echo "Q{$j}";
        if (substr($targetNumber, $j, 1) == '4' || substr($targetNumber, $j, 1) == '9')
        {
            $flag = FALSE;
            break;
        }
    }
    if ($flag === TRUE) {
        $ret += pow(10, $scale2) - pow(8, $scale2);
    } else
    {
        $ret += pow(10, $scale2);
    }
    //echo "\n";

    if ($DEBUG) echo "TEST {$targetNumber} {$scale2} {$ret}\n";

    $targetNumber += pow(10, $scale2);
}
echo "{$ret}\n";
if ($DEBUG) exit("FINISH\n");

function dumpX($arr)
{
    global $sizeX;
    global $sizeY;
    
    echo "\n";
    for ($i = 0; $i < $sizeX; $i++)
    {
        for ($j = 0; $j < $sizeY; $j++)
        {
            printf("%02d ", $arr[$i][$j]);
        }
        echo "\n";
    }
    echo "\n";
}

if ($DEBUG)
{
    $time_f = microtime(TRUE);
    printf("time = %1.3f sec \n", $time_f - $time_s);
}

Submission Info

Submission Time
Task D - 禁止された数字
User takepan
Language PHP (PHP 5.3.10)
Score 100
Code Size 2502 Byte
Status AC
Exec Time 57 ms
Memory 3728 KB

Judge Result

Set Name Sample Subtask1 Subtask2
Score / Max Score 0 / 0 30 / 30 70 / 70
Status
AC × 4
AC × 16
AC × 39
Set Name Test Cases
Sample subtask0_sample01.txt, subtask0_sample02.txt, subtask0_sample03.txt, subtask0_sample04.txt
Subtask1 subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask0_sample01.txt, subtask0_sample02.txt, subtask0_sample03.txt
Subtask2 subtask0_sample01.txt, subtask0_sample02.txt, subtask0_sample03.txt, subtask0_sample04.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask2_01.txt, subtask2_02.txt, subtask2_03.txt, subtask2_04.txt, subtask2_05.txt, subtask2_06.txt, subtask2_07.txt, subtask2_08.txt, subtask2_09.txt, subtask2_10.txt, subtask2_11.txt, subtask2_12.txt, subtask2_13.txt, subtask2_14.txt, subtask2_15.txt, subtask2_16.txt, subtask2_17.txt, subtask2_18.txt, subtask2_19.txt, subtask2_20.txt, subtask2_21.txt, subtask2_22.txt
Case Name Status Exec Time Memory
subtask0_sample01.txt AC 41 ms 3720 KB
subtask0_sample02.txt AC 42 ms 3724 KB
subtask0_sample03.txt AC 40 ms 3712 KB
subtask0_sample04.txt AC 46 ms 3716 KB
subtask1_01.txt AC 40 ms 3724 KB
subtask1_02.txt AC 44 ms 3700 KB
subtask1_03.txt AC 41 ms 3724 KB
subtask1_04.txt AC 41 ms 3724 KB
subtask1_05.txt AC 42 ms 3724 KB
subtask1_06.txt AC 40 ms 3720 KB
subtask1_07.txt AC 43 ms 3688 KB
subtask1_08.txt AC 41 ms 3712 KB
subtask1_09.txt AC 39 ms 3716 KB
subtask1_10.txt AC 39 ms 3720 KB
subtask1_11.txt AC 42 ms 3724 KB
subtask1_12.txt AC 43 ms 3720 KB
subtask1_13.txt AC 42 ms 3712 KB
subtask2_01.txt AC 45 ms 3716 KB
subtask2_02.txt AC 44 ms 3720 KB
subtask2_03.txt AC 45 ms 3712 KB
subtask2_04.txt AC 45 ms 3720 KB
subtask2_05.txt AC 48 ms 3728 KB
subtask2_06.txt AC 46 ms 3724 KB
subtask2_07.txt AC 48 ms 3716 KB
subtask2_08.txt AC 47 ms 3720 KB
subtask2_09.txt AC 47 ms 3612 KB
subtask2_10.txt AC 44 ms 3720 KB
subtask2_11.txt AC 46 ms 3620 KB
subtask2_12.txt AC 57 ms 3724 KB
subtask2_13.txt AC 42 ms 3604 KB
subtask2_14.txt AC 48 ms 3724 KB
subtask2_15.txt AC 46 ms 3716 KB
subtask2_16.txt AC 47 ms 3728 KB
subtask2_17.txt AC 49 ms 3672 KB
subtask2_18.txt AC 52 ms 3728 KB
subtask2_19.txt AC 47 ms 3708 KB
subtask2_20.txt AC 45 ms 3728 KB
subtask2_21.txt AC 44 ms 3724 KB
subtask2_22.txt AC 50 ms 3716 KB