<?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>スタック・キューメニュー - IQパズルステップ</title>
	<atom:link href="https://chokomon.com/category/paiza/20-stack_queue/feed/" rel="self" type="application/rss+xml" />
	<link>https://chokomon.com</link>
	<description>ちょこっと頭を良くするIQパズル問題集</description>
	<lastBuildDate>Mon, 18 Jul 2022 01:50:19 +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>スタック・キューメニュー - IQパズルステップ</title>
	<link>https://chokomon.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>【スタック・キューメニュー】箱とボール (paizaランク B)-解答例-PHP編</title>
		<link>https://chokomon.com/20-stack_queue-04-06-00496/</link>
					<comments>https://chokomon.com/20-stack_queue-04-06-00496/#respond</comments>
		
		<dc:creator><![CDATA[東鳥子]]></dc:creator>
		<pubDate>Mon, 18 Jul 2022 00:01:16 +0000</pubDate>
				<category><![CDATA[paiza-問題集]]></category>
		<category><![CDATA[スタック・キューメニュー]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[ランクB]]></category>
		<category><![CDATA[難易度-2000以上]]></category>
		<guid isPermaLink="false">https://chokomon.com/?p=5842</guid>

					<description><![CDATA[【スタック・キューメニュー】&#62; FINAL問題 箱とボール (paizaランク B 相当)&#160;[難易度:&#160;2043&#160;±43] ※リンク先へ移動するためには[paiza]へのログインが必要です。 解答例]]></description>
										<content:encoded><![CDATA[
<p>【<a href="https://chokomon.com/paiza_mondai/20-stack_queue/">スタック・キューメニュー</a>】&gt; <a href="https://paiza.jp/works/mondai/stack_queue/stack_queue__practice_step6" target="_blank" rel="noreferrer noopener">FINAL問題 箱とボール (paizaランク B 相当)</a>&nbsp;[難易度:&nbsp;<strong>2043&nbsp;±43</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/07/20-04-06-01.png" alt="" class="wp-image-5843"/></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 の筒状の箱に数値の書かれた直径 1 のボールを入れます。各ボールは同じ数値のボールが隣合ったときに結合し、数値が 2 倍になります。それぞれ A_i と書かれた N 個のボールがあり、順番に箱の底へ入れていきます。最終的な箱の中のようすを、箱の天井から順に出力してください。</p>



<p></p>



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



<p><strong>出力値（例）</strong><br>3<br>4<br>10<br>2<br>3</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
    $n = trim(fgets(STDIN));
    $a = explode(" ", trim(fgets(STDIN)));
    
    $box = [];
    
    for ($i = 0; $i &lt; $n; $i++) {
        array_push($box, $a[$i]);
        
        while (count($box) &gt;= 2) {
            $top1 = $box[count($box) - 1];
            array_pop($box);
            
            $top2 = $box[count($box) - 1];
            array_pop($box);
            
            if ($top1 == $top2) {
                array_push($box, $top2 * 2);
                
            } else {
                array_push($box, $top2);
                array_push($box, $top1);
                break;
            }
        }
    }
    
    while (count($box) &gt; 0) {
        echo $box[count($box) - 1]. "\n";
        array_pop($box);
    }
?&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="240" src="https://chokomon.com/wp-content/uploads/2022/07/20-04-06-02.png" alt="" class="wp-image-5844"/></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://chokomon.com/20-stack_queue-04-06-00496/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【スタック・キューメニュー】エスカレーター (paizaランク B)-解答例-PHP編</title>
		<link>https://chokomon.com/20-stack_queue-04-05-00495/</link>
					<comments>https://chokomon.com/20-stack_queue-04-05-00495/#respond</comments>
		
		<dc:creator><![CDATA[東鳥子]]></dc:creator>
		<pubDate>Sun, 17 Jul 2022 04:49:13 +0000</pubDate>
				<category><![CDATA[paiza-問題集]]></category>
		<category><![CDATA[スタック・キューメニュー]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[ランクB]]></category>
		<category><![CDATA[難易度-1700]]></category>
		<guid isPermaLink="false">https://chokomon.com/?p=5835</guid>

					<description><![CDATA[【スタック・キューメニュー】> STEP: 5 エスカレーター (paizaランク B 相当) [難易度: 1710 ±36] ※リンク先へ移動するためには[paiza]へのログインが必要です。 解答例 解説 エレベーターに乗ってきた人を配…]]></description>
										<content:encoded><![CDATA[
<p>【<a href="https://chokomon.com/paiza_mondai/20-stack_queue/">スタック・キューメニュー</a>】> <a href="https://paiza.jp/works/mondai/stack_queue/stack_queue__practice_step5" target="_blank" rel="noreferrer noopener">STEP: 5 エスカレーター (paizaランク B 相当)</a> [難易度: <strong>1710 ±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 decoding="async" width="660" height="300" src="https://chokomon.com/wp-content/uploads/2022/07/20-04-05-01.png" alt="" class="wp-image-5836"/></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 ビルにあるエスカレーターは全長 K メートルあり、 1 秒で 1 メートル進みます。また paiza ビルに勤める社員が N 人おり、 i 番目の社員は時刻 A_i にエスカレーターに乗ります。各社員がエスカレーターに乗った直後に、エスカレーター上にいる人数をそれぞれ答えてください。ただしある時刻にエスカレーターに乗る社員と降りる社員がいた場合、これは同時におこなわれます。</p>



<p></p>



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



<p><strong>出力値（例）</strong><br>1<br>2<br>2<br>2</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)));
    $a = explode(" ", trim(fgets(STDIN)));
    
    $next_person = 0;
    $person_on_escalator = 0;
    
    $que = [];
    
    for ($i = 1; $i &lt; 50000; $i++) {
        if ($next_person &lt; $n &amp;&amp; $i == $a[$next_person]) {
            array_push($que, 1);
            $person_on_escalator++;
            
        } else {
            array_push($que, 0);
        }
        
        if (count($que) &gt; $k) {
            $person_on_escalator -= $que[0];
            array_shift($que);
        }
        
        if ($next_person &lt; $n &amp;&amp; $i == $a[$next_person]) {
            echo $person_on_escalator. "\n";
            $next_person++;
        }
    }
?&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="240" src="https://chokomon.com/wp-content/uploads/2022/07/20-04-05-02.png" alt="" class="wp-image-5837"/></figure>



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



<p>エレベーターに乗ってきた人を配列$queに入れます。</p>



<p>配列（リスト）の最後に要素を追加する（array_push)</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">array_push($que, 1);</pre></div>



<p></p>



<p>乗る人がいない場合は、0を追加します。</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">array_push($que, 0);</pre></div>



<p class="has-gray-background-color has-background">//$que = [1, 0]



<p></p>



<p>そして、降りる人を先頭の要素から削除します。</p>



<p>配列（リスト）の先頭の要素を削除する(array_shift)</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">array_shift($que);</pre></div>



<p class="has-gray-background-color has-background">//$que = [0]



<p></p>



<p>配列の右から入って左から出ていく、というイメージです。</p>



<p>はじめに、先頭に要素を追加するarray_unshift()を使っていたら他のケースで通過できず悩んでいました。右から入れて左から出すのイメージにしたら無事に全部通過しました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://chokomon.com/20-stack_queue-04-05-00495/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【スタック・キューメニュー】括弧列 (paizaランク C)-解答例-PHP編</title>
		<link>https://chokomon.com/20-stack_queue-04-04-00494/</link>
					<comments>https://chokomon.com/20-stack_queue-04-04-00494/#respond</comments>
		
		<dc:creator><![CDATA[東鳥子]]></dc:creator>
		<pubDate>Sat, 16 Jul 2022 00:02:08 +0000</pubDate>
				<category><![CDATA[paiza-問題集]]></category>
		<category><![CDATA[スタック・キューメニュー]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[ランクC]]></category>
		<category><![CDATA[難易度-1700]]></category>
		<guid isPermaLink="false">https://chokomon.com/?p=5829</guid>

					<description><![CDATA[【スタック・キューメニュー】&#62; STEP: 4 括弧列 (paizaランク C 相当)&#160;[難易度:&#160;1774&#160;±35] ※リンク先へ移動するためには[paiza]へのログインが必要です。 解答例]]></description>
										<content:encoded><![CDATA[
<p>【<a href="https://chokomon.com/paiza_mondai/20-stack_queue/">スタック・キューメニュー</a>】&gt; <a href="https://paiza.jp/works/mondai/stack_queue/stack_queue__practice_step4" target="_blank" rel="noreferrer noopener">STEP: 4 括弧列 (paizaランク C 相当)</a>&nbsp;[難易度:&nbsp;<strong>1774&nbsp;±35</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/20-04-04-01.png" alt="" class="wp-image-5830"/></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>N 文字の&nbsp;<strong>括弧列&nbsp;</strong>S が与えられます。与えられた&nbsp;<strong>括弧列&nbsp;</strong>が&nbsp;<strong>正しい括弧列&nbsp;</strong>かどうか判定してください。<br><br>ここで、&nbsp;<strong>括弧列&nbsp;</strong>とは以下のように定義します。<br><br>*&nbsp;<code>(</code>&nbsp;または&nbsp;<code>)</code>&nbsp;または空文字のみで構成される文字列<br><br>また、&nbsp;<strong>正しい括弧列&nbsp;</strong>とは以下のように定義します。<br><br>1. 空文字列は正しい括弧列である。<br>2. 文字列&nbsp;<code>s</code>&nbsp;が正しい括弧列であるとき、&nbsp;<code>(</code>&nbsp;+ s +&nbsp;<code>)</code>&nbsp;は正しい括弧列である。<br>3. 文字列&nbsp;<code>s</code>&nbsp;,&nbsp;<code>t</code>&nbsp;が正しい括弧列であるとき、&nbsp;<code>s</code>&nbsp;+&nbsp;<code>t</code>&nbsp;は正しい括弧列である。<br><br>たとえば、以下の文字列はすべて&nbsp;<strong>正しい&nbsp;</strong>括弧列です。<br></p>



<p class="has-gray-background-color has-background">()<br>(())<br>()()<br>(()())<br>((((())())()))</p>



<p>また、以下の文字列はすべて&nbsp;<strong>正しくない&nbsp;</strong>括弧列です。</p>



<p class="has-gray-background-color has-background">)(<br>(<br>())<br>((())<br>(()()))((()())()</p>



<p></p>



<p></p>



<p><strong>入力値（例）</strong><br>4<br>(())</p>



<p><strong>出力値（例）</strong><br>Yes</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
    $n = trim(fgets(STDIN));
    $s = trim(fgets(STDIN));
    
    $stack = [];
    
    for ($i = 0; $i &lt; $n; $i++) {
        if ($s[$i] === "(") {
            $stack[] = $s[$i];
            
        } elseif ($s[$i] === ")") {
            
            if (count($stack) == 0) {
                echo "No";
                return;
                
            } else {
                array_pop($stack);
            }
        }
    }
    
    echo (count($stack) == 0) ? "Yes" : "No";
?&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/20-04-04-02.png" alt="" class="wp-image-5831"/></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://chokomon.com/20-stack_queue-04-04-00494/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【スタック・キューメニュー】逆ポーランド記法 (paizaランク B)-解答例-PHP編</title>
		<link>https://chokomon.com/20-stack_queue-04-03-00493/</link>
					<comments>https://chokomon.com/20-stack_queue-04-03-00493/#respond</comments>
		
		<dc:creator><![CDATA[東鳥子]]></dc:creator>
		<pubDate>Fri, 15 Jul 2022 21:21:53 +0000</pubDate>
				<category><![CDATA[paiza-問題集]]></category>
		<category><![CDATA[スタック・キューメニュー]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[ランクB]]></category>
		<category><![CDATA[難易度-1800]]></category>
		<guid isPermaLink="false">https://chokomon.com/?p=5824</guid>

					<description><![CDATA[【スタック・キューメニュー】> STEP: 3 逆ポーランド記法 (paizaランク B 相当) [難易度: 1877 ±38] ※リンク先へ移動するためには[paiza]へのログインが必要です。 解答例]]></description>
										<content:encoded><![CDATA[
<p>【<a href="https://chokomon.com/paiza_mondai/20-stack_queue/">スタック・キューメニュー</a>】> <a href="https://paiza.jp/works/mondai/stack_queue/stack_queue__practice_step3" target="_blank" rel="noreferrer noopener">STEP: 3 逆ポーランド記法 (paizaランク B 相当)</a> [難易度: <strong>1877 ±38</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/20-04-03-01.png" alt="" class="wp-image-5825"/></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><a href="https://ja.wikipedia.org/wiki/%E9%80%86%E3%83%9D%E3%83%BC%E3%83%A9%E3%83%B3%E3%83%89%E8%A8%98%E6%B3%95">逆ポーランド記法&nbsp;</a>で書かれた数式が与えられます。この数式を計算した結果を出力してください。この問題は少し難しいですが、スタックを用いて解いてみましょう。<br><br><br>逆ポーランド記法とは<br>私たちがよく用いる数式の記法は中置記法と呼ばれています。たとえば以下の数式のように、数値と数値の&nbsp;<strong>間&nbsp;</strong>に演算子が置かれます。</p>



<p class="has-gray-background-color has-background">1 + 2</p>



<p>逆ポーランド記法では以下の数式のように、数値と数値の&nbsp;<strong>後&nbsp;</strong>に演算子が置かれます。</p>



<p class="has-gray-background-color has-background">1 2 +</p>



<p>逆ポーランド記法の長所として、計算順序を決定する括弧を必要としません。たとえば中置記法で書かれた以下の数式について考えます。</p>



<p class="has-gray-background-color has-background">(1 + 2) - (3 + 4)</p>



<p>これを逆ポーランド記法に変換すると以下のようになります。</p>



<p class="has-gray-background-color has-background">1 2 + 3 4 + -</p>



<p></p>



<p></p>



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



<p><strong>出力値（例）</strong><br>3</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
    $n = trim(fgets(STDIN));
    $a = explode(" ", trim(fgets(STDIN)));
    
    $numbers = [];
    
    for ($i = 0; $i &lt; $n; $i++) {
        $tmp = $a[$i];

        if ($tmp == '+' or $tmp == '-') {
            $q2 = array_pop($numbers);
            $q1 = array_pop($numbers);
            
            if ($tmp == '+') {
                $q = $q1 + $q2;
            } elseif ($tmp == '-') {
                $q = $q1 - $q2;
            }
            $numbers[] = $q;
            
        } else {
            $q = $tmp;
            $numbers[] = $q;
        }
    }    
    echo $numbers[0];
?&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/20-04-03-02.png" alt="" class="wp-image-5826"/></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://chokomon.com/20-stack_queue-04-03-00493/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【スタック・キューメニュー】最大の区間和 (paizaランク B)-解答例-PHP編</title>
		<link>https://chokomon.com/20-stack_queue-04-02-00492/</link>
					<comments>https://chokomon.com/20-stack_queue-04-02-00492/#respond</comments>
		
		<dc:creator><![CDATA[東鳥子]]></dc:creator>
		<pubDate>Fri, 15 Jul 2022 18:39:50 +0000</pubDate>
				<category><![CDATA[paiza-問題集]]></category>
		<category><![CDATA[スタック・キューメニュー]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[ランクB]]></category>
		<category><![CDATA[難易度-2000以上]]></category>
		<guid isPermaLink="false">https://chokomon.com/?p=5818</guid>

					<description><![CDATA[【スタック・キューメニュー】&#62; STEP: 2 最大の区間和 (paizaランク B 相当)&#160;[難易度:&#160;2124&#160;±46] ※リンク先へ移動するためには[paiza]へのログインが必要です。 解答例]]></description>
										<content:encoded><![CDATA[
<p>【<a href="https://chokomon.com/paiza_mondai/20-stack_queue/">スタック・キューメニュー</a>】&gt; <a href="https://paiza.jp/works/mondai/stack_queue/stack_queue__practice_step2" target="_blank" rel="noreferrer noopener">STEP: 2 最大の区間和 (paizaランク B 相当)</a>&nbsp;[難易度:&nbsp;<strong>2124&nbsp;±46</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/20-04-02-01.png" alt="" class="wp-image-5819"/></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>N 個の要素からなる数列 A があります。 A に含まれる連続した X 個の要素の和の最大値とその区間の左端の値を出力してください。ただし、要素の和の最大となる区間が複数ある場合はそのうちもっとも先頭の値を出力してください。<br>たとえば、&nbsp;<code><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-light-orange-color">N = 4</mark></code>&nbsp;,&nbsp;<code><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-light-orange-color">A = [2, 3, 4, 1]</mark></code>&nbsp;,&nbsp;<code><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-light-orange-color">X = 2</mark></code>&nbsp;とします。連続した 2 個の要素の和が最大となる区間は A の 2 番目から 3 番目まで(&nbsp;<code>3 + 4 = 7</code>&nbsp;が最大値 )なので、最大値 7 とその区間の左端の値 3 を出力します。</p>



<p>また、実行時間に注意しましょう。たとえば以下の Python3 のプログラムのような、数列の要素数 N と和を求める連続する要素数 X を用いて、約 N * X 回足し算をおこなうプログラムはタイムオーバーになってしまうことがあります。キューまたはスタックを用いて効率のよいプログラムを意識しましょう。</p>



<p></p>



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



<p><strong>出力値（例）</strong><br>7 3</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, $x) = explode(" ", trim(fgets(STDIN)));
    $a = explode(" ", trim(fgets(STDIN)));
    
    $total_max = 0;
    $left_num = $a[0];
    
    for ($i = 0; $i &lt; $x; $i++) {
        $total_max += $a[$i];
    }
    
    $tmp_sum = $total_max;
    
    for ($i = 0; $i &lt; ($n - $x); $i++) {
        $tmp_sum -= $a[$i];
        $tmp_sum += $a[$i + $x];
        
        if ($tmp_sum &gt; $total_max) {
            $left_num = $a[$i + 1];
            $total_max = $tmp_sum;
        }
    }
    
    printf("%d %d\n", $total_max, $left_num);
?&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/20-04-02-02.png" alt="" class="wp-image-5820"/></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://chokomon.com/20-stack_queue-04-02-00492/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【スタック・キューメニュー】2 つのキュー (paizaランク C)-解答例-PHP編</title>
		<link>https://chokomon.com/20-stack_queue-04-01-00491/</link>
					<comments>https://chokomon.com/20-stack_queue-04-01-00491/#respond</comments>
		
		<dc:creator><![CDATA[東鳥子]]></dc:creator>
		<pubDate>Fri, 15 Jul 2022 16:54:48 +0000</pubDate>
				<category><![CDATA[paiza-問題集]]></category>
		<category><![CDATA[スタック・キューメニュー]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[ランクC]]></category>
		<category><![CDATA[難易度-1300]]></category>
		<guid isPermaLink="false">https://chokomon.com/?p=5813</guid>

					<description><![CDATA[【スタック・キューメニュー】> STEP: 1 2 つのキュー (paizaランク C 相当) [難易度: 1380 ±30] ※リンク先へ移動するためには[paiza]へのログインが必要です。 解答例]]></description>
										<content:encoded><![CDATA[
<p>【<a href="https://chokomon.com/paiza_mondai/20-stack_queue/">スタック・キューメニュー</a>】> <a href="https://paiza.jp/works/mondai/stack_queue/stack_queue__practice_step1" target="_blank" rel="noreferrer noopener">STEP: 1 2 つのキュー (paizaランク C 相当)</a> [難易度: <strong>1380 ±30</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/20-04-01-01.png" alt="" class="wp-image-5814"/></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>Q 個のクエリが与えられます。 2 つのキューを用意したあと、 Q 個のクエリを順に処理してください。各クエリは、以下の 5 つのいずれかです。</p>



<p>・ PUSH 1 X: 1 つ目のキューに数値 X を追加<br>・ PUSH 2 X: 2 つ目のキューに数値 X を追加<br>・ POP 1: 1 つ目のキューの先頭の要素を削除し、その値を出力<br>・ POP 2: 2 つ目のキューの先頭の要素を削除し、その値を出力<br>・ SIZE: 1 つ目のキュー、 2 つ目のキューに含まれる要素数をそれぞれ出力</p>



<p></p>



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



<p><strong>出力値（例）</strong><br>2 1<br>2<br>1 1</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
    $n = trim(fgets(STDIN));
    
    $a1 = [];
    $a2 = [];
    
    for($i = 0; $i &lt; $n; $i++) {
        $c = trim(fgets(STDIN));
        
        if($c[0] == 1) {
            list($push, $k, $x) = explode(" ", $c);
            if($k == 1) {
                $a1[] = $x;
            } elseif($k == 2) {
                $a2[] = $x;
            }
            
        } elseif($c[0] == 2) {
            list($pop, $k) = explode(" ", $c);
            if($k == 1) {
                $q = array_shift($a1);
                echo $q. "\n";
            } elseif($k == 2) {
                $q = array_shift($a2);
                echo $q. "\n";
            }
            
        } else {
            $a = count($a1);
            $b = count($a2);
            printf("%d %d\n", $a, $b);
        }
    }
?&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="240" src="https://chokomon.com/wp-content/uploads/2022/07/20-04-01-02.png" alt="" class="wp-image-5815"/></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://chokomon.com/20-stack_queue-04-01-00491/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【スタック・キューメニュー】キュー実装編 step 2 (paizaランク C)-解答例-PHP編</title>
		<link>https://chokomon.com/20-stack_queue-03-02-00490/</link>
					<comments>https://chokomon.com/20-stack_queue-03-02-00490/#respond</comments>
		
		<dc:creator><![CDATA[東鳥子]]></dc:creator>
		<pubDate>Fri, 15 Jul 2022 16:01:32 +0000</pubDate>
				<category><![CDATA[paiza-問題集]]></category>
		<category><![CDATA[スタック・キューメニュー]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[ランクC]]></category>
		<category><![CDATA[難易度-1200]]></category>
		<guid isPermaLink="false">https://chokomon.com/?p=5807</guid>

					<description><![CDATA[【スタック・キューメニュー】&#62; FINAL問題 キュー実装編 step 2 (paizaランク C 相当)&#160;[難易度:&#160;1284&#160;±30] ※リンク先へ移動するためには[paiza]へのログインが必要です…]]></description>
										<content:encoded><![CDATA[
<p>【<a href="https://chokomon.com/paiza_mondai/20-stack_queue/">スタック・キューメニュー</a>】&gt; <a href="https://paiza.jp/works/mondai/stack_queue/stack_queue__queue_step2" target="_blank" rel="noreferrer noopener">FINAL問題 キュー実装編 step 2 (paizaランク C 相当)</a>&nbsp;[難易度:&nbsp;<strong>1284&nbsp;±30</strong>]



<p>※リンク先へ移動するためには[<a rel="noreferrer noopener" href="https://paiza.jp/works" target="_blank">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/20-03-02-01.png" alt="" class="wp-image-5808"/></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>Q 個のクエリが与えられます。空の配列 A を用意したあと、 Q 個のクエリに応じて以下の 2 種類の処理をしてください。</p>



<p>・ PUSH X: 配列 A の末尾に&nbsp;<strong>文字 X</strong>&nbsp;を追加<br>・ POP: 配列 A の先頭にある要素を出力し、削除</p>



<p>各クエリの処理が終わったあと、配列 A の各要素の値を半角スペース区切りで出力してください。</p>



<p></p>



<p><strong>入力値（例）</strong><br>4<br>1 a<br>2<br>1 b<br>1 a</p>



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



<p>b<br>b a</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
    $n = trim(fgets(STDIN));
    
    $array = [];
    
    for($i = 0; $i &lt; $n; $i++) {
        $c = trim(fgets(STDIN));
        
        if(strpos($c, 1) !== FALSE) {
            list($push, $x) = explode(" ", $c);
            $array[] = $x;
            
        } elseif($c == 2) {
            $p = array_shift($array);
            echo $p. "\n";
        }
        
        $q = implode(" ", $array);
        echo $q. "\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="240" src="https://chokomon.com/wp-content/uploads/2022/07/20-03-02-02.png" alt="" class="wp-image-5809"/></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://chokomon.com/20-stack_queue-03-02-00490/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【スタック・キューメニュー】キュー実装編 step 1 (paizaランク C)-解答例-PHP編</title>
		<link>https://chokomon.com/20-stack_queue-03-01-00489/</link>
					<comments>https://chokomon.com/20-stack_queue-03-01-00489/#respond</comments>
		
		<dc:creator><![CDATA[東鳥子]]></dc:creator>
		<pubDate>Fri, 15 Jul 2022 08:47:46 +0000</pubDate>
				<category><![CDATA[paiza-問題集]]></category>
		<category><![CDATA[スタック・キューメニュー]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[ランクC]]></category>
		<category><![CDATA[難易度-1200]]></category>
		<guid isPermaLink="false">https://chokomon.com/?p=5799</guid>

					<description><![CDATA[【スタック・キューメニュー】&#62; STEP: 1 キュー実装編 step 1 (paizaランク C 相当)&#160;[難易度:&#160;1257&#160;±30] ※リンク先へ移動するためには[paiza]へのログインが必要です…]]></description>
										<content:encoded><![CDATA[
<p>【<a href="https://chokomon.com/paiza_mondai/20-stack_queue/">スタック・キューメニュー</a>】&gt; <a href="https://paiza.jp/works/mondai/stack_queue/stack_queue__queue_step1" target="_blank" rel="noreferrer noopener">STEP: 1 キュー実装編 step 1 (paizaランク C 相当)</a>&nbsp;[難易度:&nbsp;<strong>1257&nbsp;±30</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/20-03-01-01.png" alt="" class="wp-image-5800"/></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>キューとは、「先入れ先出し構造( First In, First Out )」などと呼ばれるデータ構造で、データの追加と、最初に追加したデータを取り出すことができます。</p>



<p></p>



<p>Q 個のクエリが与えられます。空の配列 A を用意したあと、 Q 個のクエリに応じて以下の 2 種類の処理をしてください。</p>



<p>・ PUSH X: 配列 A の末尾に X を追加<br>・ POP: 配列 A の先頭にある要素を削除</p>



<p>各クエリの処理が終わったあと、配列 A の各要素の値を半角スペース区切りで出力してください。</p>



<p></p>



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



<p><strong>出力値（例）</strong><br>1<br>1 4<br>1 4 2<br>4 2</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
    $n = trim(fgets(STDIN));
    
    $array = [];
    
    for($i = 0; $i &lt; $n; $i++) {
        $c = trim(fgets(STDIN));
        
        if(strpos($c, 1) !== FALSE) {
            list($push, $x) = explode(" ", $c);
            $array[] = $x;
            
        } elseif($c == 2) {
            array_shift($array);
        }
        
        $q = implode(" ", $array);
        echo $q. "\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="240" src="https://chokomon.com/wp-content/uploads/2022/07/20-03-01-02.png" alt="" class="wp-image-5801"/></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://chokomon.com/20-stack_queue-03-01-00489/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【スタック・キューメニュー】スタック実装編 step 2 (paizaランク C)-解答例-PHP編</title>
		<link>https://chokomon.com/20-stack_queue-02-02-00488/</link>
					<comments>https://chokomon.com/20-stack_queue-02-02-00488/#respond</comments>
		
		<dc:creator><![CDATA[東鳥子]]></dc:creator>
		<pubDate>Fri, 15 Jul 2022 07:21:44 +0000</pubDate>
				<category><![CDATA[paiza-問題集]]></category>
		<category><![CDATA[スタック・キューメニュー]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[ランクC]]></category>
		<category><![CDATA[難易度-1500]]></category>
		<guid isPermaLink="false">https://chokomon.com/?p=5793</guid>

					<description><![CDATA[【スタック・キューメニュー】&#62; FINAL問題 スタック実装編 step 2 (paizaランク C 相当)&#160;[難易度:&#160;1526&#160;±25] ※リンク先へ移動するためには[paiza]へのログインが必要で…]]></description>
										<content:encoded><![CDATA[
<p>【<a href="https://chokomon.com/paiza_mondai/20-stack_queue/">スタック・キューメニュー</a>】&gt; <a href="https://paiza.jp/works/mondai/stack_queue/stack_queue__stack_step2" target="_blank" rel="noreferrer noopener">FINAL問題 スタック実装編 step 2 (paizaランク C 相当)</a>&nbsp;[難易度:&nbsp;<strong>1526&nbsp;±25</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/20-02-02-01.png" alt="" class="wp-image-5794"/></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>Q 個のクエリが与えられます。空の配列 A を用意したあと、 Q 個のクエリに応じて以下の 2 種類の処理をしてください。</p>



<p>・ PUSH X: 配列 A の末尾に&nbsp;<strong>文字 X&nbsp;</strong>を追加<br>・ POP: 配列 A の末尾にある要素を出力し、削除</p>



<p>各クエリの処理が終わったあと、配列 A の各要素の値を半角スペース区切りで出力してください。</p>



<p></p>



<p><strong>入力値（例）</strong><br>4<br>1 c<br>2<br>1 d<br>2</p>



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



<p>d<br>d</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
    $n = trim(fgets(STDIN));
    
    $array = [];
    
    for($i = 0; $i &lt; $n; $i++) {
        $c = trim(fgets(STDIN));
        
        if(strpos($c, 1) !== FALSE) {
            list($push, $x) = explode(" ", $c);
            $array[] = $x;
            
        } elseif($c == 2) {
            $p = array_pop($array);
            echo $p. "\n";
        }
        
        $q = implode(" ", $array);
        echo $q. "\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="240" src="https://chokomon.com/wp-content/uploads/2022/07/20-02-02-02.png" alt="" class="wp-image-5795"/></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://chokomon.com/20-stack_queue-02-02-00488/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【スタック・キューメニュー】スタック実装編 step 1 (paizaランク C)-解答例-PHP編</title>
		<link>https://chokomon.com/20-stack_queue-02-01-00487/</link>
					<comments>https://chokomon.com/20-stack_queue-02-01-00487/#respond</comments>
		
		<dc:creator><![CDATA[東鳥子]]></dc:creator>
		<pubDate>Fri, 15 Jul 2022 06:12:16 +0000</pubDate>
				<category><![CDATA[paiza-問題集]]></category>
		<category><![CDATA[スタック・キューメニュー]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[ランクC]]></category>
		<category><![CDATA[難易度-1500]]></category>
		<guid isPermaLink="false">https://chokomon.com/?p=5787</guid>

					<description><![CDATA[【スタック・キューメニュー】&#62; STEP: 1 スタック実装編 step 1 (paizaランク C 相当)&#160;[難易度:&#160;1512&#160;±23] ※リンク先へ移動するためには[paiza]へのログインが必要で…]]></description>
										<content:encoded><![CDATA[
<p>【<a href="https://chokomon.com/paiza_mondai/20-stack_queue/">スタック・キューメニュー</a>】&gt; <a href="https://paiza.jp/works/mondai/stack_queue/stack_queue__stack_step1" target="_blank" rel="noreferrer noopener">STEP: 1 スタック実装編 step 1 (paizaランク C 相当)</a>&nbsp;[難易度:&nbsp;<strong>1512&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 loading="lazy" decoding="async" width="660" height="300" src="https://chokomon.com/wp-content/uploads/2022/07/20-02-01-01.png" alt="" class="wp-image-5788"/></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>スタックとは、「先入れ後出し構造( Last In, First Out )」などと呼ばれるデータ構造で、データの追加と、最後に追加したデータを取り出すことができます。</p>



<p></p>



<p>Q 個のクエリが与えられます。空の配列 A を用意したあと、 Q 個のクエリに応じて以下の 2 種類の処理を行ってください。<br><br>・ PUSH X: 配列 A の末尾に X を追加<br>・ POP: 配列 A の末尾にある要素を削除<br><br>各クエリの処理が終わったあと、配列 A の各要素の値を半角スペース区切りで出力してください。</p>



<p></p>



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



<p><strong>出力値（例）</strong><br>4<br>4 5<br>4 5 3<br>4 5</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
    $n = trim(fgets(STDIN));
    
    $array = [];
    
    for($i = 0; $i &lt; $n; $i++) {
        $c = trim(fgets(STDIN));
        
        if(strpos($c, 1) !== FALSE) {
            list($push, $x) = explode(" ", $c);
            $array[] = $x;
        } elseif($c == 2) {
            array_pop($array);
        }
        
        $q = implode(" ", $array);
        echo $q. "\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="240" src="https://chokomon.com/wp-content/uploads/2022/07/20-02-01-02.png" alt="" class="wp-image-5789"/></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://chokomon.com/20-stack_queue-02-01-00487/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
