diff options
| author | nsfisis <nsfisis@gmail.com> | 2025-03-10 00:17:47 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2025-03-10 00:17:47 +0900 |
| commit | 87ffe8514a1cdd48ce1660c63c021e5f30540184 (patch) | |
| tree | 6b699e918c242d64a2b5ee3b385cf4e3b5587934 | |
| parent | bb844de6a8acdbc5d4fbffbd74daa54e6dd19efe (diff) | |
| download | phperkaigi-2025-albatross-87ffe8514a1cdd48ce1660c63c021e5f30540184.tar.gz phperkaigi-2025-albatross-87ffe8514a1cdd48ce1660c63c021e5f30540184.tar.zst phperkaigi-2025-albatross-87ffe8514a1cdd48ce1660c63c021e5f30540184.zip | |
remove sql files
| -rw-r--r-- | q1.sql | 17 | ||||
| -rw-r--r-- | q2.sql | 112 | ||||
| -rw-r--r-- | q3.sql | 107 | ||||
| -rw-r--r-- | q4.sql | 104 |
4 files changed, 0 insertions, 340 deletions
@@ -1,17 +0,0 @@ -INSERT INTO problems (title, description, sample_code) -VALUES - ('練習問題', '', ''), - ('九九', '', ''), - ('いろは', '', ''), - ('グルーピング', '', ''), - ('しりとり', '', ''), - ('ポップカウント', '', ''); - -INSERT INTO games (game_type, is_public, display_name, duration_seconds, problem_id) -VALUES - ('multiplayer', true, '練習問題', 900, 21), - ('multiplayer', true, '予選ラウンド1', 900, 22), - ('multiplayer', true, '予選ラウンド2', 900, 23), - ('multiplayer', true, '予選ラウンド3', 900, 24), - ('1v1', true, 'エキシビション1', 900, 25), - ('1v1', true, 'エキシビション2', 900, 26); @@ -1,112 +0,0 @@ -UPDATE problems -SET -sample_code = $EOF$$line = fgets(STDIN); -$number = intval($line); -echo $number * $number, PHP_EOL; -$EOF$ -WHERE title = '練習問題'; - -UPDATE problems -SET -sample_code = $EOF$fscanf(STDIN, "%d %d", $col, $row); - -for ($i = 1; $i <= $row; $i++) { - for ($j = 1; $j <= $col; $j++) { - printf(str_repeat(" ", strlen($col * $row) - strlen($j * $i) + 1)); - printf("%d", $i * $j); - } - printf("\n"); -} -$EOF$ -WHERE title = '九九'; - -UPDATE problems -SET -sample_code = $EOF$$lines = []; -while ($line = fgets(STDIN)) { - $lines[] = rtrim($line); -} - -function to_iroha($chars) { - return implode(',',array_map(fn ($c) => match($c) { - 'い' => 0, 'ろ' => 1, 'は' => 2, 'に' => 3, 'ほ' => 4, 'へ' => 5, 'と' => 6, - 'ち' => 7, 'り' => 8, 'ぬ' => 9, 'る' => 10, 'を' => 11, - }, mb_str_split($chars))); -} - -usort($lines, function (string $a, string $b): int { - $as = to_iroha($a); - $bs = to_iroha($b); - - if ($as === $bs) { - return 0; - } else { - return ($as > $bs) ? 1 : -1; - } -}); - -foreach ($lines as $line) echo $line, PHP_EOL; -$EOF$ -WHERE title = 'いろは'; - -UPDATE problems -SET -sample_code = $EOF$$result = []; -while ([$a, $b] = fgetcsv(STDIN, 1024, ',', '"', '')) { - if (!isset($result[$a])) { - $result[$a] = [$b]; - } else { - $result[$a][] = $b; - } -} -ksort($result); -foreach ($result as $i => $v) { - sort($v); - fputcsv(STDOUT, array_merge([$i], $v), ',', '"', ''); -} -$EOF$ -WHERE title = 'グルーピング'; - -UPDATE problems -SET -sample_code = $EOF$$lines = []; -while ($line = fgets(STDIN)) { - $lines[] = rtrim($line); -} - -$current = array_shift($lines); -$words = $lines; -$lines = []; -echo $current, "\n"; -do { - $last = mb_str_split($current)[mb_strlen($current)-1]; - if ($last === 'ン') { - echo "負けました\n"; - break; - } - foreach ($words as $i => $word) { - if (str_starts_with($word, $last)) { - echo $word, "\n"; - unset($words[$i]); - $current = $word; - continue 2; - } - } - exit("おかしいな\n"); -} while(true); -$EOF$ -WHERE title = 'しりとり'; - -UPDATE problems -SET -sample_code = $EOF$while($line = fgets(STDIN)) { - $line = rtrim($line, "\n"); - $count = 0; - foreach (str_split($line) as $char) { - $bits = str_split(decbin(ord($char))); - $count = $count + count(array_filter($bits, fn($c)=> $c == 1)); - } - echo $count, PHP_EOL; -} -$EOF$ -WHERE title = 'ポップカウント'; @@ -1,107 +0,0 @@ -UPDATE problems -SET -description = $EOF$標準入力から数字が一つ入力されます。二乗して標準出力へ出力してください。 -$EOF$ -WHERE title = '練習問題'; - -UPDATE problems -SET -description = $EOF$標準入力にスペース区切りの整数col rowが与えられます。「かける数」は1〜col、「かけられる数」は1〜rowまでの連続した整数です。全ての組み合わせのかけ算の結果が右揃えに整列するように出力してください。空白の個数は最も横幅が長いマスに合わせてください。 -$EOF$ -WHERE title = '九九'; - -UPDATE problems -SET -description = $EOF$「いろはにほへとちりぬるを」の12種類の文字から構成される文字列が改行区切りで入力されます。標準入力の内容を全て読み取り、文字列を「いろは」順に並べて出力してください。 - -入力: -るりいろ -りぬる -いちにち -ほへとちに -いち -ほとはろ -りにへ -いい -いいい -とりほい -いろ -いろいろ - -出力: -いい -いいい -いろ -いろいろ -いち -いちにち -るりいろ -ほへとちに -ほとはろ -とりほい -りにへ -りぬる -$EOF$ -WHERE title = 'いろは'; - -UPDATE problems -SET -description = $EOF$標準入力からRFC 4180準拠の行区切りのデータが与えられます。行は name,value のような構造になっています。nameごとにvalueを集約し、name,value1,value2,...のようなCSVとして出力してください。ただし、行はnameのアルファベット昇順、列はnameを先頭にして、valueをアルファベット昇順でそれぞれソートして出力すること。 - -入力: -Foo,zzz -Foo,xxx -Bar,ccc -Bar,bbb -Foo,yyy -Bar,"a, aa, aaa" -Bar,aaa -Foo,"hello, world" - -出力: -Bar,"a, aa, aaa",aaa,bbb,ccc -Foo,"hello, world",xxx,yyy,zzz -$EOF$ -WHERE title = 'グルーピング'; - -UPDATE problems -SET -description = $EOF$標準入力から改行区切りでカタカナ文字列の単語が入力されます。全ての行を読み取り、最初に入力された行から開始して「しりとり」になるように単語を改行区切りで順番に出力してください。一度使った文字を再利用することはできません。出力した単語の最後の文字が「ン」で終わったときは"負けました\n"と出力して、プログラムを終了してください。最初の文字と最後の文字は重複しないように入力されます。 - -入力: -リンゴ -ライオン -ゴリラ - -出力: -リンゴ -ゴリラ -ライオン -負けました - -入力: -リンゴ -ライオン -ゴリラ - -出力: -リンゴ -ゴリラ -ライオン -負けました -$EOF$ -WHERE title = 'しりとり'; - -UPDATE problems -SET -description = $EOF$標準入力から行区切りのデータが入力されます。行末の改行コードを取り除いた入力文字列について、2進数で表現した際にビットで表現した時の1の個数を行ごとに合計した数を改行区切りで出力してください。たとえば文字列のXは数値で表すと88ですが、2進数で表示すると01011000なので、1のビットの個数は3になります。 - -入力: -ABC -Hello, world - -出力: -7 -47 -$EOF$ -WHERE title = 'ポップカウント'; @@ -1,104 +0,0 @@ -INSERT INTO testcases (problem_id, stdin, stdout) -VALUES - (1, '0', '0'), - (1, '-100', '10000'), - (1, '123', '15129'); - -INSERT INTO testcases (problem_id, stdin, stdout) -VALUES - (2, $$9 3 -$$, $$ 1 2 3 4 5 6 7 8 9 - 2 4 6 8 10 12 14 16 18 - 3 6 9 12 15 18 21 24 27 -$$), - (2, $$10 20 -$$, $$ 1 2 3 4 5 6 7 8 9 10 - 2 4 6 8 10 12 14 16 18 20 - 3 6 9 12 15 18 21 24 27 30 - 4 8 12 16 20 24 28 32 36 40 - 5 10 15 20 25 30 35 40 45 50 - 6 12 18 24 30 36 42 48 54 60 - 7 14 21 28 35 42 49 56 63 70 - 8 16 24 32 40 48 56 64 72 80 - 9 18 27 36 45 54 63 72 81 90 - 10 20 30 40 50 60 70 80 90 100 - 11 22 33 44 55 66 77 88 99 110 - 12 24 36 48 60 72 84 96 108 120 - 13 26 39 52 65 78 91 104 117 130 - 14 28 42 56 70 84 98 112 126 140 - 15 30 45 60 75 90 105 120 135 150 - 16 32 48 64 80 96 112 128 144 160 - 17 34 51 68 85 102 119 136 153 170 - 18 36 54 72 90 108 126 144 162 180 - 19 38 57 76 95 114 133 152 171 190 - 20 40 60 80 100 120 140 160 180 200 -$$); - -INSERT INTO testcases (problem_id, stdin, stdout) -VALUES - (3, $$るりいろ -りぬる -いちにち -ほへとちに -いち -ほとはろ -りにへ -いい -いいい -とりほい -いろ -いろいろ -$$, $$いい -いいい -いろ -いろいろ -いち -いちにち -るりいろ -ほへとちに -ほとはろ -とりほい -りにへ -りぬる -$$); - -INSERT INTO testcases (problem_id, stdin, stdout) -VALUES - (4, $$Foo,zzz -Foo,xxx -Bar,ccc -Bar,bbb -Foo,yyy -Bar,"a, aa, aaa" -Bar,aaa -Foo,"hello, world" -$$, $$Bar,"a, aa, aaa",aaa,bbb,ccc -Foo,"hello, world",xxx,yyy,zzz -$$); - -INSERT INTO testcases (problem_id, stdin, stdout) -VALUES - (5, $$リンゴ -ライオン -ゴリラ -$$, $$リンゴ -ゴリラ -ライオン -負けました -$$), - (5, $$リンゴ -ライオン -ゴリラ -$$, $$リンゴ -ゴリラ -ライオン -負けました -$$); - -INSERT INTO testcases (problem_id, stdin, stdout) -VALUES - (6, $$ABC -Hello, world -$$, $$7 -47 -$$); |
