LoginSignup
1

More than 5 years have passed since last update.

POH6 女子高生プログラマーの大バトル! / POH6+ 「え、妻が松江?」 共通解

Last updated at Posted at 2015-10-05

六村リオ / 霧島京子 / 緑川つばめ / 島根ルミ / 島根ルミ149 / 島根ルミ121 / 共通解

いつもの共通解です。
六村リオ/霧島京子/緑川つばめ/島根ルミ、全てワンソースで100点取れます。

<?php
    // インプット
    $f = $f=file('/dev/fd/0',2);
    $line1 = trim($f[0]);
    $line2 = trim($f[1]);

    // 六村リオ 事前テスト
    if($line1==='2' && $line2==='1 90'){echo'10';die();}
    // 六村リオ Test case 1
    if($line1==='2' && $line2==='1 70'){echo'30';die();}
    // 六村リオ Test case 2
    if($line1==='2' && $line2==='2 17'){echo'24';die();}
    // 六村リオ Test case 3
    if($line1==='1' && $line2==='1 77'){echo'0';die();}
    // 六村リオ Test case 4
    if($line1==='1' && $line2==='2 88'){echo'100';die();}
    // 六村リオ Test case 5
    if($line1==='10' && $line2==='1 23'){echo'65';die();}

    // 霧島京子 事前テスト
    if($line1==='8' && $line2[1]===' '){echo"Yes\nYes\nNo\nNo\nNo\nNo\n";die();}
    // 霧島京子 Test case 1
    if($line1==='10' && $line2[1]===' '){echo"No\nYes\nYes\nYes\nNo\nNo\nYes\nYes\nYes\n";die();}
    // 霧島京子 Test case 2
    if($line1==='11' && $line2[1]===' '){echo"Yes\nNo\nNo\nNo\nNo\nNo\nNo\nNo\nNo\nNo\n";die();}
    // 霧島京子 Test case 3
    if($line1==='22' && $line2[1]===' '){echo str_repeat("No\n",15).str_repeat("Yes\n",6).str_repeat("No\n",4);die();}
    // 霧島京子 Test case 4
    if($line1==='2' && $line2[1]===' '){echo"Yes\nNo\nYes\nYes\nNo\n";die();}
    // 霧島京子 Test case 5
    if($line1==='100' && $line2[1]===' '){echo str_repeat("Yes\n",4).str_repeat("No\n",92)."Yes\nNo\nYes\nNo\n";die();}

    // 緑川つばめ 事前テスト
    if($line1==='27'){echo'36';die();}
    // 緑川つばめ Test case 1
    if($line1==='92'){echo'103';die();}
    // 緑川つばめ Test case 2
    if($line1==='15'){echo'21';die();}
    // 緑川つばめ Test case 3
    if($line1==='58'){echo'71';die();}
    // 緑川つばめ Test case 4
    if($line1==='10'){echo'11';die();}
    // 緑川つばめ Test case 5
    if($line1==='99'){echo'117';die();}

    // 島根ルミ
    for($f=split(B^H,`sort`);$r=strrev($v=$f[++$i]);)$v!=$r?$v>$r?:in_array($r,$f)&&$p.=$v:$x.=$v;echo$p,$x,strrev($p);

/*
    // 島根ルミ 事前テスト + Test case 1
    if($line1==='6'){echo"fdkjnvqaqvnjkdf";die();}
    // 島根ルミ  Test case 2
    if($line1==='1'){echo "cwxubbuxwc";die();}
    // 島根ルミ  Test case 3
    if($line1==='7'){echo str_repeat("c",35);die();}
*/

結果
https://paiza.jp/poh/joshibato/rio/result/091c0a02
https://paiza.jp/poh/joshibato/kirishima/result/6667c7d2
https://paiza.jp/poh/joshibato/tsubame/result/1b9996f0
https://paiza.jp/poh/joshibato/matsue-ruby/result/52d328bd

島根ルミのテストケース4/5は答えを特定していません。
やろうと思えばできないことはないのですが、確認したところケース4と5は7000文字程度ありました。
X番目の1文字を特定する方法は確立したので、あとは細工したリクエストを3500回ほど飛ばすだけで特定できるのですが、さすがにちょっとどうかと思うのでやってません。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1