<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>難易度-1900 - IQパズルステップ</title>
	<atom:link href="https://chokomon.com/tag/difficulty-1900/feed/" rel="self" type="application/rss+xml" />
	<link>https://chokomon.com</link>
	<description>ちょこっと頭を良くするIQパズル問題集</description>
	<lastBuildDate>Tue, 18 Oct 2022 10:33:16 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://chokomon.com/wp-content/uploads/2022/02/cropped-icon512-32x32.png</url>
	<title>難易度-1900 - IQパズルステップ</title>
	<link>https://chokomon.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>【クラス・構造体メニュー】クラスの継承 (paizaランク B)-解答例-PHP編</title>
		<link>https://chokomon.com/26-class_primer-02-04-00665/</link>
					<comments>https://chokomon.com/26-class_primer-02-04-00665/#respond</comments>
		
		<dc:creator><![CDATA[東鳥子]]></dc:creator>
		<pubDate>Mon, 10 Oct 2022 03:30:30 +0000</pubDate>
				<category><![CDATA[paiza-問題集]]></category>
		<category><![CDATA[クラス・構造体メニュー]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[ランクB]]></category>
		<category><![CDATA[難易度-1900]]></category>
		<guid isPermaLink="false">https://chokomon.com/?p=6983</guid>

					<description><![CDATA[【クラス・構造体メニュー】&#62; 【静的メンバ】STEP: 4 クラスの継承 (paizaランク B 相当)&#160;[難易度:&#160;1934&#160;±23] ※リンク先へ移動するためには[paiza]へのログインが必要です。…]]></description>
										<content:encoded><![CDATA[
<p>【<a href="https://chokomon.com/paiza_mondai/26-class_primer/">クラス・構造体メニュー</a>】&gt; <a href="https://paiza.jp/works/mondai/class_primer/class_primer__inheritance" target="_blank" rel="noreferrer noopener">【静的メンバ】STEP: 4 クラスの継承 (paizaランク B 相当)</a>&nbsp;[難易度:&nbsp;<strong>1934&nbsp;±23</strong>]



<p>※リンク先へ移動するためには[<a href="https://paiza.jp/works" target="_blank" rel="noreferrer noopener">paiza</a>]へのログインが必要です。</p>



<figure class="wp-block-image aligncenter size-full"><img fetchpriority="high" decoding="async" width="660" height="300" src="https://chokomon.com/wp-content/uploads/2022/10/26-02-04-01.png" alt="" class="wp-image-6984"/></figure>



<div class="wp-block-dvaux-frame sc_frame_wrap inline"><div class="sc_frame_title inline" style="background-color:#ccc">問題文</div><div class="sc_frame" style="background-color:#fff;border-color:#ccc">
<p>paiza 国の大衆居酒屋で働きながらクラスの勉強をしていたあなたは、お客さんをクラスに見立てることで店内の情報を管理できることに気付きました。<br>全てのお客さんは、ソフトドリンクと食事を頼むことができます。<br>paiza 国の法律では、 20 歳以上のお客さんは成人とみなされ、お酒を頼むことができます。<br>20 歳未満のお客さんは未成年とみなされ、お酒を頼もうとした場合はその注文は取り消されます。<br>また、お酒を頼んだ場合、以降の全ての食事の注文 が毎回 200 円引きになります.</p>



<p>店内の全てのお客さんの数と注文の回数、各注文をしたお客さんの番号とその内容が与えられるので、各お客さんの会計を求めてください。</p>



<p>ヒント</p>



<p>注文について、20 歳未満のお客さんにできて、 20 歳以上のお客さんにできないことはないので、20歳未満のお客さんのクラスを作成して、それを継承して 20歳以上のお客さんのクラスを作成することで効率よく実装することができます。</p>



<p></p>



<p><strong>入力値（例）</strong><br>2 5<br>59<br>5<br>2 food 1223<br>1 alcohol 4461<br>1 alcohol 4573<br>1 alcohol 1438<br>2 softdrink 1581</p>



<p><strong>出力値（例）</strong><br>10472<br>2804</p>
</div></div>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">解答例</h2>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">&lt;?php
    class Customer {
        public $payment = 0;
        
        public function __construct($payment) {
            $this-&gt;payment = $payment = 0;
        }
    
        public function GetPayment() {
            return $this-&gt;payment;
        }
    
        public function OrderFood($price) {
            $this-&gt;payment += $price;
        }
    
        public function OrderSoftDrink($price) {
            $this-&gt;payment += $price;
        }
    
        public function OrderAlcohol($price) {
            // echo "お酒は20歳になってから";
        }
    }
    
    class AdultCustomer extends Customer {
        public $discount;
        
        public function __construct($discount) {
            $this-&gt;discount = $discount = false;
        }
    
        public function OrderFood($price) {
            $this-&gt;payment += $this-&gt;discount ? $price - 200 : $price;
        }
    
        public function OrderAlcohol($price) {
            $this-&gt;payment += $price;
            if (!$this-&gt;discount) {
                $this-&gt;discount = true;
            }
        }
    }

　　list($n, $k) = explode(" ", trim(fgets(STDIN)));
    for($i=0; $i&lt;$n; $i++) {
        $age = trim(fgets(STDIN));
        
        if($age&lt;20) {
            $customers[] = new Customer($age);
        } else {
            $customers[] = new AdultCustomer($age);
        }
    }
    for($i=0; $i&lt;$k; $i++) {
        list($index, $order, $price) = explode(" ", trim(fgets(STDIN)));
        
        $index--;
    
        switch($order) {
            case "food":
                $customers[$index]-&gt;OrderFood($price);
                break;
            case "softdrink":
                $customers[$index]-&gt;OrderSoftDrink($price);
                break;
            case "alcohol":
                $customers[$index]-&gt;OrderAlcohol($price);
                break;
        }
    }
    //print_r($customers);
    
    for($i=0; $i&lt;$n; $i++) {
        echo $customers[$i]-&gt;GetPayment(). "\n";
    }
?&gt;</pre></div>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image aligncenter size-full"><img decoding="async" width="660" height="200" src="https://chokomon.com/wp-content/uploads/2022/10/26-02-04-02.png" alt="" class="wp-image-6985"/></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://chokomon.com/26-class_primer-02-04-00665/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【戦セット】【挑戦9】線対称と点対称 (paizaランク B)-解答例-PHP編</title>
		<link>https://chokomon.com/33-warset-01-09-00655/</link>
					<comments>https://chokomon.com/33-warset-01-09-00655/#respond</comments>
		
		<dc:creator><![CDATA[東鳥子]]></dc:creator>
		<pubDate>Mon, 19 Sep 2022 01:45:58 +0000</pubDate>
				<category><![CDATA[paiza-問題集]]></category>
		<category><![CDATA[戦セット]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[ランクB]]></category>
		<category><![CDATA[難易度-1900]]></category>
		<guid isPermaLink="false">https://chokomon.com/?p=6917</guid>

					<description><![CDATA[【戦セット】> 【挑戦9】線対称と点対称 (paizaランク B 相当) [難易度: 1969 ±18] ※リンク先へ移動するためには[paiza]へのログインが必要です。 解答例]]></description>
										<content:encoded><![CDATA[
<p>【<a href="https://chokomon.com/paiza_mondai/paiza_set/33-warset/">戦セット</a>】> <a href="https://paiza.jp/works/mondai/warset/b1_symmetry" target="_blank" rel="noreferrer noopener">【挑戦9】線対称と点対称 (paizaランク B 相当)</a> [難易度: <strong>1969 ±18</strong>]



<p>※リンク先へ移動するためには[<a href="https://paiza.jp/works" target="_blank" rel="noreferrer noopener">paiza</a>]へのログインが必要です。</p>



<figure class="wp-block-image aligncenter size-full"><img decoding="async" width="660" height="300" src="https://chokomon.com/wp-content/uploads/2022/09/33-01-09-01.png" alt="" class="wp-image-6918"/></figure>



<div class="wp-block-dvaux-frame sc_frame_wrap inline"><div class="sc_frame_title inline" style="background-color:#ccc">問題文</div><div class="sc_frame" style="background-color:#fff;border-color:#ccc">
<p>この問題は、弊社営業社員が競技プログラミングに挑戦したものです。<br>https://youtu.be/Vf2RFjXCmZY</p>



<p>ある図形に対し、線対称、点対称は次のように定義されます。<br>・線対称：ある直線を折り目にして折りたたんだとき、折り目の両側がぴったり重なること<br>・点対称：ある一点で180度回転させたとき、もとの図形とまったく同じ形になること</p>



<p>この問題では、ドット絵に対する線対称、点対称を以下のように定義します。<br>・線対称：ドット絵の中心を通る垂直、または水平な直線で折りたたんだとき、折り目の両端がぴったり重なること<br>（斜めの直線を折り目にすることは考えません。）<br>・点対称：ドット絵の中心で180度回転させたとき、もとの図形とまったく同じ形になること</p>



<p>n×mのドット絵が入力されるので、そのドット絵が線対称であるか、点対称であるか、その両方か、そのどちらかでもないかを判定するプログラムを作成してください。</p>



<p></p>



<p><strong>入力値（例）</strong><br>2 3<br>###<br>...</p>



<p><strong>出力値（例）</strong><br>line symmetry</p>
</div></div>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">解答例</h2>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">&lt;?php
    list($n, $m) = explode(" ", trim(fgets(STDIN)));
    
    for($i=0; $i&lt;$n; $i++){
        $d[$i] = trim(fgets(STDIN));
    }
    
    $line_vertical = true; $line_horizontal = true; $point_s = true;
    
    // 点対称
    for($i=0; $i&lt;=$n/2; $i++){
        for($j=0; $j&lt;=$m/2; $j++){
            if($d[$i][$j] != $d[$n-1-$i][$m-1-$j]){
                $point_s = false;
            }
        }
    }
    
    // 垂直に折りたたむ際
    for($i=0; $i&lt;$n; $i++){
        for($j=0; $j&lt;=$m/2; $j++){
            if($d[$i][$j] != $d[$i][$m-1-$j]){
                $line_vertical = false;
            }
        }
    }
    
    // 水平に折りたたむ際
    for($i=0; $i&lt;=$n/2; $i++){
        for($j=0; $j&lt;$m; $j++){
            if($d[$i][$j] != $d[$n-1-$i][$j]){
                $line_horizontal = false;
            }
        }
    }
    
    if($point_s){
        if($line_horizontal || $line_vertical){
            echo "line point symmetry";
        }else{
            echo "point symmetry";
        }
    }else{
        if($line_horizontal || $line_vertical){
            echo "line symmetry";
        }else{
            echo "none";
        }
    }
?&gt;</pre></div>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="660" height="160" src="https://chokomon.com/wp-content/uploads/2022/09/33-01-09-02.png" alt="" class="wp-image-6919"/></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://chokomon.com/33-warset-01-09-00655/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【累積和メニュー】区間の数え上げ 1 (paizaランク C)-解答例-PHP編</title>
		<link>https://chokomon.com/27-prefix_sum_problems-08-01-00647/</link>
					<comments>https://chokomon.com/27-prefix_sum_problems-08-01-00647/#respond</comments>
		
		<dc:creator><![CDATA[東鳥子]]></dc:creator>
		<pubDate>Fri, 16 Sep 2022 03:20:27 +0000</pubDate>
				<category><![CDATA[paiza-問題集]]></category>
		<category><![CDATA[累積和メニュー]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[ランクC]]></category>
		<category><![CDATA[難易度-1900]]></category>
		<guid isPermaLink="false">https://chokomon.com/?p=6873</guid>

					<description><![CDATA[【累積和メニュー】> 【区間の数え上げ】STEP: 1 区間の数え上げ 1 (paizaランク C 相当) [難易度: 1954 ±50] ※リンク先へ移動するためには[paiza]へのログインが必要です。 解答例]]></description>
										<content:encoded><![CDATA[
<p>【<a href="https://chokomon.com/paiza_mondai/27-prefix_sum_problems/">累積和メニュー</a>】> <a href="https://paiza.jp/works/mondai/prefix_sum_problems/prefix_sum_problems__syakutori_count_step1" target="_blank" rel="noreferrer noopener">【区間の数え上げ】STEP: 1 区間の数え上げ 1 (paizaランク C 相当)</a> [難易度: <strong>1954 ±50</strong>]



<p>※リンク先へ移動するためには[<a href="https://paiza.jp/works" target="_blank" rel="noreferrer noopener">paiza</a>]へのログインが必要です。</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="660" height="300" src="https://chokomon.com/wp-content/uploads/2022/09/27-08-01-01.png" alt="" class="wp-image-6874"/></figure>



<div class="wp-block-dvaux-frame sc_frame_wrap inline"><div class="sc_frame_title inline" style="background-color:#ccc">問題文</div><div class="sc_frame" style="background-color:#fff;border-color:#ccc">
<p>この問題では、累積和と似たアルゴリズムである「しゃくとり法」について扱います。</p>



<p>しゃくとり法を用いることで、条件を満たす区間の数や、最も長い区間の長さを求めることができます。</p>



<p>この問題集を通してしゃくとり法の問題に触れ、少しずつしゃくとり法に慣れていきましょう。</p>



<p>まずは、問題を見てみましょう。</p>



<p>以下の 10 個の整数からなる数列が与えられます。<br></p>



<p class="has-gray-background-color has-background"> 1 5 9 1 20 5 3 6 5 4 </p>



<p></p>



<p>この数列において、長さが 1 以上で総和が 15 以下の区間がいくつあるか求めてください。</p>



<p></p>



<p><strong>入力値（例）</strong><br>なし</p>



<p><strong>出力値（例）</strong><br>与えられた数列において、総和が 15 以下の区間がいくつあるか求めてください。</p>



<p>末尾に改行を入れ、余計な文字、空行を含んではいけません。</p>
</div></div>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">解答例</h2>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">&lt;?php
    $a = [1, 5, 9, 1, 20, 5, 3, 6, 5, 4];
    
    $k = 15;
    $count = 0;
    
    for ($i=0; $i&lt;count($a); $i++) {
        $r = $i+1;
        $sectionSum = 0;
        while ($r &lt; count($a)+1) {
            $sectionSum += $a[$r-1];
            if ($sectionSum &gt; $k) break;
            $r++;
        }
        $count += $r-$i-1;
    }
    echo $count;
?&gt;</pre></div>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="660" height="160" src="https://chokomon.com/wp-content/uploads/2022/09/27-08-01-02.png" alt="" class="wp-image-6875"/></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://chokomon.com/27-prefix_sum_problems-08-01-00647/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【クエリメニュー】ドーナツ (paizaランク A)-解答例-PHP編</title>
		<link>https://chokomon.com/17-query_primer-04-02-00620/</link>
					<comments>https://chokomon.com/17-query_primer-04-02-00620/#respond</comments>
		
		<dc:creator><![CDATA[東鳥子]]></dc:creator>
		<pubDate>Wed, 07 Sep 2022 22:11:46 +0000</pubDate>
				<category><![CDATA[paiza-問題集]]></category>
		<category><![CDATA[クエリメニュー]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[ランクA]]></category>
		<category><![CDATA[難易度-1900]]></category>
		<guid isPermaLink="false">https://chokomon.com/?p=6711</guid>

					<description><![CDATA[【クエリメニュー】> 【点の幅】STEP: 2 ドーナツ (paizaランク A 相当) [難易度: 1927 ±36] ※リンク先へ移動するためには[paiza]へのログインが必要です。 解答例]]></description>
										<content:encoded><![CDATA[
<p>【<a href="https://chokomon.com/paiza_mondai/17-query_primer/">クエリメニュー</a>】> <a href="https://paiza.jp/works/mondai/query_primer/query_primer__dount" target="_blank" rel="noreferrer noopener">【点の幅】STEP: 2 ドーナツ (paizaランク A 相当)</a> [難易度: <strong>1927 ±36</strong>]



<p>※リンク先へ移動するためには[<a href="https://paiza.jp/works" target="_blank" rel="noreferrer noopener">paiza</a>]へのログインが必要です。</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="660" height="300" src="https://chokomon.com/wp-content/uploads/2022/09/17-04-02-01.png" alt="" class="wp-image-6713"/></figure>



<div class="wp-block-dvaux-frame sc_frame_wrap inline"><div class="sc_frame_title inline" style="background-color:#ccc">問題文</div><div class="sc_frame" style="background-color:#fff;border-color:#ccc">
<p>あなたはドーナツ屋 paiza の店員です. この店では, チョコが埋め込まれた四角のドーナツが名物となっています.</p>



<p>H x W cm^2 の生地があります. これは 1 cm^2 ごとに区画されており, H x W 個の区画を持っています.<br>また, それぞれの区間には既にいくつかのチョコが散りばめられています.</p>



<p>この 1 枚の生地から四角いドーナツの形を 1 つ切り出すことができます.<br>具体的には次の工程をおこないます.</p>



<p>1. 上から y 番目、 左から x 番目の区間を中心に一辺が B cm の正方形の切れ目を入れる。<br>2. 上から y 番目、 左から x 番目の区間を中心に一辺が S cm の正方形の切れ目を入れることでドーナツ状の切れ目を完成させる。（S &lt; B であることが保証されています）</p>



<p>生地を成す H*W 個の各区画について、その区画に含まれるチョコの数と、作る N 個のドーナツについての情報が与えられるので、各ドーナツにチョコがいくつ含まれることになるかを求めてください。<br>なお、 N 枚の生地について、含まれるチョコの分布は全て同じであることがわかっています。</p>



<p>例として、入力例 1 では、生地は 3 × 3 cm^2 であり、次の通り区画されています。</p>



<p>このドーナツに乗っているチョコの数は 40 個であるので、答えとして 40 を出力してください。</p>



<p></p>



<p><strong>入力値（例）</strong><br>3 3 1<br>1 2 3<br>4 5 6<br>7 8 9<br>2 2 3 1</p>



<p><strong>出力値（例）</strong><br>40</p>
</div></div>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">解答例</h2>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">&lt;?php
    list($h, $w, $n) = explode(" ", trim(fgets(STDIN)));
    
    for ($i=0; $i&lt;$h; $i++) {
        $a[] = explode(" ", trim(fgets(STDIN)));
        for ($j=0; $j&lt;$w; $j++) {
            $sum[$i][$j] = $a[$i][$j];
            
            if ($i&gt;0) $sum[$i][$j] += $sum[$i-1][$j];
            if ($j&gt;0) $sum[$i][$j] += $sum[$i][$j-1];
            if ($i&gt;0 &amp;&amp; $j&gt;0) $sum[$i][$j] -= $sum[$i-1][$j-1];
        }
    }
    //print_r($sum);
    
    for ($i=0; $i&lt;$n; $i++) {
        list($y, $x, $b, $s) = explode(" ", trim(fgets(STDIN)));
        $y--; $x--;
        
        $ans = $sum[$y+$b/2][$x+$b/2];
        
        if ($y+$b/2-$b&gt;=0) $ans-=$sum[$y+$b/2-$b][$x+$b/2];
        if ($x+$b/2-$b&gt;=0) $ans-=$sum[$y+$b/2][$x+$b/2-$b];
        if ($y+$b/2-$b&gt;=0 &amp;&amp; $x+$b/2-$b&gt;=0)
                $ans+=$sum[$y+$b/2-$b][$x+$b/2-$b];
        
        $ans-=$sum[$y+$s/2][$x+$s/2];
        
        if ($y+$s/2-$s&gt;=0) $ans+=$sum[$y+$s/2-$s][$x+$s/2];
        if ($x+$s/2-$s&gt;=0) $ans+=$sum[$y+$s/2][$x+$s/2-$s];
        if ($y+$s/2-$s&gt;=0 &amp;&amp; $x+$s/2-$s&gt;=0)
                $ans-=$sum[$y+$s/2-$s][$x+$s/2-$s];
        
        printf("%d\n", $ans);
    }   
?&gt;</pre></div>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="660" height="160" src="https://chokomon.com/wp-content/uploads/2022/09/17-04-02-02.png" alt="" class="wp-image-6714"/></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://chokomon.com/17-query_primer-04-02-00620/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【クエリメニュー】&#039;I&#039; の数 (paizaランク B)-解答例-PHP編</title>
		<link>https://chokomon.com/17-query_primer-04-01-00615/</link>
					<comments>https://chokomon.com/17-query_primer-04-01-00615/#respond</comments>
		
		<dc:creator><![CDATA[東鳥子]]></dc:creator>
		<pubDate>Wed, 07 Sep 2022 08:19:49 +0000</pubDate>
				<category><![CDATA[paiza-問題集]]></category>
		<category><![CDATA[クエリメニュー]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[ランクB]]></category>
		<category><![CDATA[難易度-1900]]></category>
		<guid isPermaLink="false">https://chokomon.com/?p=6676</guid>

					<description><![CDATA[【クエリメニュー】> 【点の幅】STEP: 1 'I' の数 (paizaランク B 相当) [難易度: 1954 ±33] ※リンク先へ移動するためには[paiza]へのログインが必要です。 解答例]]></description>
										<content:encoded><![CDATA[
<p>【<a href="https://chokomon.com/paiza_mondai/17-query_primer/">クエリメニュー</a>】> <a href="https://paiza.jp/works/mondai/query_primer/query_primer__word_count" target="_blank" rel="noreferrer noopener">【点の幅】STEP: 1 'I' の数 (paizaランク B 相当)</a> [難易度: <strong>1954 ±33</strong>]



<p>※リンク先へ移動するためには[<a href="https://paiza.jp/works" target="_blank" rel="noreferrer noopener">paiza</a>]へのログインが必要です。</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="660" height="300" src="https://chokomon.com/wp-content/uploads/2022/09/17-04-01-01.png" alt="" class="wp-image-6677"/></figure>



<div class="wp-block-dvaux-frame sc_frame_wrap inline"><div class="sc_frame_title inline" style="background-color:#ccc">問題文</div><div class="sc_frame" style="background-color:#fff;border-color:#ccc">
<p>英語の授業中に暇だった paiza 君は、N ページの教科書を使った次のようなゲームを思いつきました。</p>



<p>「2人のプレイヤーがそれぞれ教科書の 1 箇所を適当に掴んで、掴んだ範囲のページに含まれる 'I' の合計数が多い方が勝ち、少ない方が負け、同じだったら引き分け！」<br>「ただし、 N/3 ページ以上掴んだ人は反則負けで、 2 人とも反則したら引き分け！」<br>(ここでの N/3 は整数であるとは限りません)</p>



<p>審判を任されたあなたは、各ページに含まれる 'I' の数を記録しておくことで、掴んだページの両端の番号を確認するだけで、掴んだ範囲のページに含まれる 'I' の合計数を求めることができることに気付きました。</p>



<p>教科書のページ数 N と試合の数 K , 各ページの 'I' の数 I_1 ... I_N と、<br>i 番目の試合で対戦した A と B の 2 人が掴んだページの両端のページ番号 A_l_i, A_r_i , B_l_i, B_r_iが与えられるので、各試合のジャッジしてください。</p>



<p></p>



<p><strong>入力値（例）</strong><br>3 3<br>0<br>1<br>2<br>1 1 2 2<br>2 2 3 3<br>3 3 3 3</p>



<p><strong>出力値（例）</strong><br>DRAW<br>DRAW<br>DRAW</p>
</div></div>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">解答例</h2>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">&lt;?php
    list($n, $k) = explode(" ", trim(fgets(STDIN)));
    
    $page_min = ($n/3.0);
    $sum[0] = 0;

    for ($i=0; $i&lt;$n; $i++) {
        $a = trim(fgets(STDIN));
        $sum[$i+1] = $sum[$i] + $a;
    }
    
    for ($i=0; $i&lt;$k; $i++) {
        list($al, $ar, $bl, $br) = explode(" ", trim(fgets(STDIN)));
    
        $pagea = $ar-$al+1;
        $pageb = $br-$bl+1;
    
        if ($page_min &lt;= $pagea) {
          if ($page_min &lt;= $pageb) {
            $result = "DRAW";
          } else {
            $result = "B";
          }
        } else {
          if ($page_min &lt;= $pageb) {
            $result = "A";
          } else {
            if ($sum[$ar]-$sum[$al-1] &gt; $sum[$br]-$sum[$bl-1]) {
              $result = "A";
            } elseif ($sum[$ar]-$sum[$al-1] &lt; $sum[$br]-$sum[$bl-1]) {
              $result = "B";
            } else {
              $result = "DRAW";
            }
          }
        }
        echo $result. "\n";
    }
?&gt;</pre></div>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="660" height="200" src="https://chokomon.com/wp-content/uploads/2022/09/17-04-01-02.png" alt="" class="wp-image-6678"/></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://chokomon.com/17-query_primer-04-01-00615/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【クエリメニュー】歴史を作る時間 (paizaランク C)-解答例-PHP編</title>
		<link>https://chokomon.com/17-query_primer-02-02-00596/</link>
					<comments>https://chokomon.com/17-query_primer-02-02-00596/#respond</comments>
		
		<dc:creator><![CDATA[東鳥子]]></dc:creator>
		<pubDate>Wed, 24 Aug 2022 23:52:02 +0000</pubDate>
				<category><![CDATA[paiza-問題集]]></category>
		<category><![CDATA[クエリメニュー]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[ランクC]]></category>
		<category><![CDATA[難易度-1900]]></category>
		<guid isPermaLink="false">https://chokomon.com/?p=6551</guid>

					<description><![CDATA[【クエリメニュー】&#62; 【Vtuber】STEP: 2 歴史を作る時間 (paizaランク C 相当)&#160;[難易度:&#160;1906&#160;±26] ※リンク先へ移動するためには[paiza]へのログインが必要です。 解…]]></description>
										<content:encoded><![CDATA[
<p>【<a href="https://chokomon.com/paiza_mondai/17-query_primer/">クエリメニュー</a>】&gt; <a href="https://paiza.jp/works/mondai/query_primer/query_primer__history" target="_blank" rel="noreferrer noopener">【Vtuber】STEP: 2 歴史を作る時間 (paizaランク C 相当)</a>&nbsp;[難易度:&nbsp;<strong>1906&nbsp;±26</strong>]



<p>※リンク先へ移動するためには[<a href="https://paiza.jp/works" target="_blank" rel="noreferrer noopener">paiza</a>]へのログインが必要です。</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="660" height="300" src="https://chokomon.com/wp-content/uploads/2022/08/17-02-02-01.png" alt="" class="wp-image-6552"/></figure>



<div class="wp-block-dvaux-frame sc_frame_wrap inline"><div class="sc_frame_title inline" style="background-color:#ccc">問題文</div><div class="sc_frame" style="background-color:#fff;border-color:#ccc">
<p>西暦 1,000,000,000 年に行われた歴史の授業のグループワークで、歴史上のいくつかの出来事についての記事を年代順に並べて歴史年表を作成することになりました。<br>ところが、歴史年表は 1 枚の紙にまとめる必要があるため、古い出来事を担当する人から順番に歴史年表を書くことにしました。<br>グループの人数 N とそのメンバー S_1 ... S_N が与えられます。<br>続けて、歴史年表に載せる出来事の数 K , 各出来事の起こった年 Y_i , その出来事の記事を担当する生徒の名前 C_i が与えられるので、歴史年表を書く担当者の順番を出力してください。<br>なお、 1 人の生徒が複数の出来事の記事を担当することがある点に注意してください。</p>



<p></p>



<p><strong>入力値（例）</strong><br>3 5<br>nao<br>hiro<br>yuki<br>645 nao<br>593 hiro<br>2058 yuki<br>29484 nao<br>374759 nao</p>



<p><strong>出力値（例）</strong><br>hiro<br>nao<br>yuki<br>nao<br>nao</p>
</div></div>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">解答例</h2>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">&lt;?php
    list($n, $k) = explode(" ", trim(fgets(STDIN)));
    
    for ($i = 0; $i &lt; $n; $i++) {
        $s[] = trim(fgets(STDIN));
    }
    
    for ($i = 0; $i &lt; $k; $i++) {
        list($year, $name) = explode(" ", trim(fgets(STDIN)));
        $history[] = ['year' =&gt; $year, 'name' =&gt; $name];
    }
    
    // 指定したキーに対応する値を基準に、配列をソートする
    function sortByKey($key_name, $sort_order, $array) {
        foreach ($array as $key =&gt; $value) {
            $standard_key_array[$key] = $value[$key_name];
        }
    
        array_multisort($standard_key_array, $sort_order, $array);
    
        return $array;
    }
    
    // yearを昇順ソートする
    $sorted_array = sortByKey('year', SORT_ASC, $history);
    
    for ($i = 0; $i &lt; $k; $i++) {
        echo $sorted_array[$i]['name']. "\n";
    }
?&gt;</pre></div>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="660" height="280" src="https://chokomon.com/wp-content/uploads/2022/08/17-02-02-02.png" alt="" class="wp-image-6553"/></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://chokomon.com/17-query_primer-02-02-00596/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【Aランクレベルアップメニュー】へび (paizaランク A)-解答例-PHP編</title>
		<link>https://chokomon.com/28-a_rank_up-03-07-00527/</link>
					<comments>https://chokomon.com/28-a_rank_up-03-07-00527/#respond</comments>
		
		<dc:creator><![CDATA[東鳥子]]></dc:creator>
		<pubDate>Sat, 06 Aug 2022 02:25:13 +0000</pubDate>
				<category><![CDATA[Aランクレベルアップメニュー]]></category>
		<category><![CDATA[paiza-問題集]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[ランクA]]></category>
		<category><![CDATA[難易度-1900]]></category>
		<guid isPermaLink="false">https://chokomon.com/?p=6049</guid>

					<description><![CDATA[【Aランクレベルアップメニュー】> FINAL問題 へび (paizaランク A 相当) [難易度: 1929 ±13] ※リンク先へ移動するためには[paiza]へのログインが必要です。 解答例]]></description>
										<content:encoded><![CDATA[
<p>【<a href="https://chokomon.com/paiza_mondai/28-a_rank_up/">Aランクレベルアップメニュー</a>】> <a href="https://paiza.jp/works/mondai/a_rank_level_up_problems/a_rank_snake_mapmove_boss" target="_blank" rel="noreferrer noopener">FINAL問題 へび (paizaランク A 相当)</a> [難易度: <strong>1929 ±13</strong>]



<p>※リンク先へ移動するためには[<a href="https://paiza.jp/works" target="_blank" rel="noreferrer noopener">paiza</a>]へのログインが必要です。</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="660" height="300" src="https://chokomon.com/wp-content/uploads/2022/08/28-03-07-01.png" alt="" class="wp-image-6050"/></figure>



<div class="wp-block-dvaux-frame sc_frame_wrap inline"><div class="sc_frame_title inline" style="background-color:#ccc">問題文</div><div class="sc_frame" style="background-color:#fff;border-color:#ccc">
<p>マップ上をへびが移動していきます。<br>マップの行数 H と列数 W ,障害物を '#' で移動可能な場所を '.' で表した H 行 W 列のマップ S_1 ... S_H , 現在の座標 sy , sx , 方向転換の回数 N が与えられます。<br>続けて N 回の方向転換をおこなう時刻 t_1 ... t_N, 転換する向き d_1 ... d_N が与えられます。</p>



<p>へびははじめは北を向いています。</p>



<p>へびは進む先のマスに自分の身体や障害物がない時に移動ができます。<br>時刻 0 から 99 までの間、へびは各時刻に次の行動を最大 100 回繰り返します。</p>



<p>・ 方向転換をおこなう時刻の場合、指定の向きに方向転換したのち １ マス身体を伸ばす。そうでない時は、今向いている方向に １ マス身体を伸ばす。</p>



<p>時刻が 99 の時の行動を終えるか、移動できなくなった時、移動を終了します。<br>移動終了時にへびの体のあるマスを '*' にしたマップを出力してください。</p>



<p>移動が可能であるということは、<br>「移動先のマスに自分の身体や障害物がない かつ 移動先がマップの範囲外でない」<br>ということを意味します。</p>



<p>なお、マスの座標系は左上端のマスの座標を ( y , x ) = ( 0 , 0 ) とし、<br>下方向が y 座標の正の向き、右方向が x 座標の正の向きとします。</p>



<p></p>



<p><strong>入力値（例）</strong><br>5 5 3 1 3<br>.....<br>.....<br>.....<br>.....<br>.....<br>2 R<br>4 R<br>6 R</p>



<p><strong>出力値（例）</strong><br>.....<br>.***.<br>.*.*.<br>.***.<br>.....</p>
</div></div>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">解答例</h2>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">&lt;?php
    list($h, $w, $y, $x, $n) = explode(" ", trim(fgets(STDIN)));
    
    for ($i = 0; $i &lt; $h; $i++) {
        $s[] = trim(fgets(STDIN));
    }
    
    $dx = [1, 0, -1, 0];
    $dy = [0, 1, 0, -1];
    
    for ($i = 0, $r = 3, $k = 0; $i &lt; $n; $i++) {
        list($t, $d) = explode(" ", trim(fgets(STDIN)));
        
        for (; $k &lt; $t; $k++) {
            $s[$y][$x] = "*";
            $nx = $x + $dx[$r];
            $ny = $y + $dy[$r];
            
            if ($s[$ny][$nx] == "." and ($ny != -1 and $nx != -1) and $s[$ny][$nx] != "*") {
                $x = $nx;
                $y = $ny;
                $s[$y][$x] = "*";
                
            } else {
                for ($j = 0; $j &lt; $h; $j++) {
                    echo $s[$j]. "\n";
                }
                exit;
            }
        }

        if ($d == "L") {
            $r = ($r + 3) % 4;
            
        } elseif ($d == "R") {
            $r = ($r + 1) % 4;
        }
    }
    
    for (; $k &lt; 100; $k++) {
        $s[$y][$x] = "*";
        $nx = $x + $dx[$r];
        $ny = $y + $dy[$r];
        
        if ($s[$ny][$nx] == "." and ($ny != -1 and $nx != -1) and $s[$ny][$nx] != "*") {
            $x = $nx;
            $y = $ny;
            $s[$y][$x] = "*";
            
        } else {
            for ($j = 0; $j &lt; $h; $j++) {
                echo $s[$j]. "\n";
            }
            exit;
        }
    }
    
    for ($j = 0; $j &lt; $h; $j++) {
        echo $s[$j]. "\n";
    }
?&gt;</pre></div>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="660" height="280" src="https://chokomon.com/wp-content/uploads/2022/08/28-03-07-02.png" alt="" class="wp-image-6051"/></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://chokomon.com/28-a_rank_up-03-07-00527/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【二重ループメニュー】お金の支払い (paizaランク C)-解答例-PHP編</title>
		<link>https://chokomon.com/11-double_roop-02-07-00481/</link>
					<comments>https://chokomon.com/11-double_roop-02-07-00481/#respond</comments>
		
		<dc:creator><![CDATA[東鳥子]]></dc:creator>
		<pubDate>Thu, 14 Jul 2022 22:10:15 +0000</pubDate>
				<category><![CDATA[paiza-問題集]]></category>
		<category><![CDATA[二重ループメニュー]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[ランクC]]></category>
		<category><![CDATA[難易度-1900]]></category>
		<guid isPermaLink="false">https://chokomon.com/?p=5735</guid>

					<description><![CDATA[【二重ループメニュー】> 【活用編：三角形の探索】STEP: 7 お金の支払い (paizaランク C 相当) [難易度: 1917 ±19] ※リンク先へ移動するためには[paiza]へのログインが必要です。 解答例]]></description>
										<content:encoded><![CDATA[
<p>【<a href="https://chokomon.com/paiza_mondai/11-double_roop/">二重ループメニュー</a>】> <a href="https://paiza.jp/works/mondai/double_roop_problems/double_roop_problems__payment" target="_blank" rel="noreferrer noopener">【活用編：三角形の探索】STEP: 7 お金の支払い (paizaランク C 相当)</a> [難易度: <strong>1917 ±19</strong>]



<p>※リンク先へ移動するためには[<a href="https://paiza.jp/works" target="_blank" rel="noreferrer noopener">paiza</a>]へのログインが必要です。</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="660" height="300" src="https://chokomon.com/wp-content/uploads/2022/07/11-02-07-01.png" alt="" class="wp-image-5737"/></figure>



<div class="wp-block-dvaux-frame sc_frame_wrap inline"><div class="sc_frame_title inline" style="background-color:#ccc">問題文</div><div class="sc_frame" style="background-color:#fff;border-color:#ccc">
<p>paiza国では、1 円と X 円と Y 円の 3 種類の硬貨しかありません。ちょうど Z 円を支払うとき、支払う硬貨の枚数が最小になるように支払ったときの硬貨の枚数を求めてください。ただし、支払う各硬貨の枚数に制限は無いものとします。</p>



<p></p>



<p><strong>入力値（例）</strong><br>500 1000 300</p>



<p><strong>出力値（例）</strong><br>300</p>
</div></div>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">解答例</h2>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">&lt;?php
    list($x, $y, $z) = explode(" ", trim(fgets(STDIN)));
    
    $ans = $z;
    
    for($i = 0; $i &lt;= 1500; $i++) {
        for($j = 0; $j &lt;= 1500; $j++) {
            if($x * $i + $y * $j &lt;= $z) {
                $one = $z - $x * $i - $y * $j;
                if($i + $j + $one &lt; $ans) {
                    $ans = $i + $j + $one;
                }
            }
        }
    }
    echo $ans;
?&gt;</pre></div>



<div style="height:30px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="660" height="160" src="https://chokomon.com/wp-content/uploads/2022/07/11-02-07-02.png" alt="" class="wp-image-5738"/></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://chokomon.com/11-double_roop-02-07-00481/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
