結果
問題 | No.438 Cwwプログラミング入門 |
ユーザー | happy-beans |
提出日時 | 2017-03-18 18:18:02 |
言語 | PHP (8.3.4) |
結果 |
TLE
|
実行時間 | - |
コード長 | 3,578 bytes |
コンパイル時間 | 716 ms |
コンパイル使用メモリ | 31,124 KB |
実行使用メモリ | 69,056 KB |
最終ジャッジ日時 | 2024-07-04 19:19:02 |
合計ジャッジ時間 | 5,039 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 40 ms
36,532 KB |
testcase_01 | AC | 40 ms
31,116 KB |
testcase_02 | AC | 40 ms
31,468 KB |
testcase_03 | TLE | - |
testcase_04 | AC | 480 ms
69,056 KB |
testcase_05 | AC | 221 ms
52,800 KB |
testcase_06 | TLE | - |
testcase_07 | -- | - |
testcase_08 | -- | - |
testcase_09 | -- | - |
testcase_10 | -- | - |
testcase_11 | -- | - |
testcase_12 | -- | - |
testcase_13 | -- | - |
testcase_14 | -- | - |
testcase_15 | -- | - |
testcase_16 | -- | - |
testcase_17 | -- | - |
testcase_18 | -- | - |
testcase_19 | -- | - |
testcase_20 | -- | - |
testcase_21 | -- | - |
testcase_22 | -- | - |
testcase_23 | -- | - |
testcase_24 | -- | - |
testcase_25 | -- | - |
testcase_26 | -- | - |
testcase_27 | -- | - |
testcase_28 | -- | - |
testcase_29 | -- | - |
testcase_30 | -- | - |
testcase_31 | -- | - |
testcase_32 | -- | - |
testcase_33 | -- | - |
testcase_34 | -- | - |
testcase_35 | -- | - |
testcase_36 | -- | - |
testcase_37 | -- | - |
testcase_38 | -- | - |
testcase_39 | -- | - |
testcase_40 | -- | - |
testcase_41 | -- | - |
testcase_42 | -- | - |
testcase_43 | -- | - |
testcase_44 | -- | - |
testcase_45 | -- | - |
testcase_46 | -- | - |
testcase_47 | -- | - |
testcase_48 | -- | - |
testcase_49 | -- | - |
testcase_50 | -- | - |
testcase_51 | -- | - |
testcase_52 | -- | - |
testcase_53 | -- | - |
testcase_54 | -- | - |
testcase_55 | -- | - |
testcase_56 | -- | - |
testcase_57 | -- | - |
testcase_58 | -- | - |
testcase_59 | -- | - |
testcase_60 | -- | - |
testcase_61 | -- | - |
testcase_62 | -- | - |
testcase_63 | -- | - |
testcase_64 | -- | - |
testcase_65 | -- | - |
testcase_66 | -- | - |
testcase_67 | -- | - |
testcase_68 | -- | - |
testcase_69 | -- | - |
testcase_70 | -- | - |
testcase_71 | -- | - |
testcase_72 | -- | - |
testcase_73 | -- | - |
testcase_74 | -- | - |
testcase_75 | -- | - |
testcase_76 | -- | - |
testcase_77 | -- | - |
testcase_78 | -- | - |
testcase_79 | -- | - |
testcase_80 | -- | - |
testcase_81 | -- | - |
testcase_82 | -- | - |
testcase_83 | -- | - |
testcase_84 | -- | - |
testcase_85 | -- | - |
testcase_86 | -- | - |
testcase_87 | -- | - |
testcase_88 | -- | - |
testcase_89 | -- | - |
testcase_90 | -- | - |
testcase_91 | -- | - |
testcase_92 | -- | - |
testcase_93 | -- | - |
testcase_94 | -- | - |
testcase_95 | -- | - |
testcase_96 | -- | - |
testcase_97 | -- | - |
testcase_98 | -- | - |
testcase_99 | -- | - |
testcase_100 | -- | - |
コンパイルメッセージ
No syntax errors detected in Main.php
ソースコード
<?php // No.438 $args = explode(" ", trim(fgets(STDIN))); $x = $args[0]; $y = $args[1]; $z = $args[2]; $cww = new Cww($x, $y, $z); $cww->main(); if (strlen($cww->result) <= 10000) { echo $cww->result.PHP_EOL; } else { echo "NO".PHP_EOL; } return; class Cww { public $stack; public $x; public $y; public $z; public $result; public $a; public $b; public function __construct($x, $y, $z) { $this->result = ""; $this->stack = array(); $this->x = $x; $this->y = $y; $this->z = $z; $this->a = 0; $this->b = 0; } public function main() { if ($this->calc() == false) { $this->result = "NO"; return; } // echo "a, b = $this->a, $this->b".PHP_EOL; // 負数の可能性のあるbを先にスタックに保存 for ($i = 0; $i < abs($this->b); $i++) { $this->pushSW(); } // a を加算 if ($this->a >= 1) { $this->pushSC(); } for ($i = 1; $i < $this->a; $i++) { $this->plusX(); } // b を加算または減算 if ($this->b < 0) { while (count($this->stack) >= 2) { $this->pushBW(); } } else if ($this->b >= 0){ while (count($this->stack) >= 2) { $this->pushBC(); } } } public function calc() { $hasAnswer = false; // z = ax + by をみたす a, bを求める。 // x,y,z > 0 から、a,bがともに負になることはないので、a>=0 とする。 if ($this->y == 0) { if ($this->x == 0) { $this->a = 0; $this->b = 0; return true; } else if (($this->z % $this->x) != 0) { // echo "false?".PHP_EOL; return false; } else { // echo "truee".PHP_EOL; $this->a = $this->z / $this->x; $this->b = 0; return true; } } for ($i = 0; $i<=$this->z; $i++) { if ((abs($this->z - $i*$this->x) % $this->y) == 0) { $this->a = $i; $this->b = ($this->z-$this->a*$this->x)/$this->y; $hasAnswer = true; break; } } // "a,b = $this->a, $this->b".PHP_EOL; return $hasAnswer; } // 最上位スタックの数字をチェック public function check() { $c = count($this->stack); return ($c >= 1) ? $this->stack[$c - 1] : false; } // 最上位スタックの数字にxを加算 public function plusX() { $this->pushSC(); return $this->pushBC(); } // 最上位のスタックの数字にyを加算 public function plusY() { $this->pushSW(); return $this->pushBC(); } // 'c' を読込 public function pushSC() { array_push($this->stack, $this->x); $this->result .= "c"; return true; } // 'w' を読込 public function pushSW() { array_push($this->stack, $this->y); $this->result .= "w"; return true; } // 'C' を読込 // スタックに2つ以上要素がない場合は false public function pushBC() { if (count($this->stack) >= 2) { $tmp = array_pop($this->stack); $tmp += array_pop($this->stack); array_push($this->stack, $tmp); $this->result .= "C"; return true; } else { return false; } } // 'W' を読込 // スタックに2つ以上要素がない場合は false public function pushBW() { if (count($this->stack) >= 2) { $tmp = array_pop($this->stack); $tmp -= array_pop($this->stack); array_push($this->stack, $tmp); $this->result .= "W"; return true; } else { return false; } } }