<?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>文系独学プログラマーの仕訳帳</title>
	<atom:link href="https://tabisukelog.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://tabisukelog.com</link>
	<description></description>
	<lastBuildDate>Tue, 11 Jul 2023 05:35:45 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.2.2</generator>

<image>
	<url>https://tabisukelog.com/wp-content/uploads/2020/12/icon-site-100x100.png</url>
	<title>文系独学プログラマーの仕訳帳</title>
	<link>https://tabisukelog.com</link>
	<width>32</width>
	<height>32</height>
</image> 
<atom:link rel="hub" href="https://pubsubhubbub.appspot.com"/>
<atom:link rel="hub" href="https://pubsubhubbub.superfeedr.com"/>
<atom:link rel="hub" href="https://websubhub.com/hub"/>
<atom:link rel="self" href="https://tabisukelog.com/feed/"/>
	<item>
		<title>CodeQUEEN 2023 予選 (AtCoder Beginner Contest 308)</title>
		<link>https://tabisukelog.com/abc308/</link>
		
		<dc:creator><![CDATA[たびすけ]]></dc:creator>
		<pubDate>Sat, 01 Jul 2023 21:00:00 +0000</pubDate>
				<category><![CDATA[ABC解説]]></category>
		<category><![CDATA[Edit]]></category>
		<guid isPermaLink="false">https://tabisukelog.com/?p=6013</guid>

					<description><![CDATA[<p>Copyright &copy; 2026 <a href="https://tabisukelog.com">文系独学プログラマーの仕訳帳</a> All Rights Reserved.</p>]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">A. New Scheme</h2>



<div class="hcb_wrap"><pre class="prism line-numbers lang-python" data-lang="Python"><code>import sys


def solve():
    input = sys.stdin.readline
    mod = 10 ** 9 + 7
    s = list(map(int, input().rstrip(&#39;\n&#39;).split()))
    for i in range(len(s)):
        if i != 0:
            if s[i] &lt; s[i-1]:
                print(&quot;No&quot;)
                exit()
        if s[i] % 25 != 0:
            print(&quot;No&quot;)
            exit()
        if s[i] &lt; 100 or 675 &lt; s[i]:
            print(&quot;No&quot;)
            exit()
    print(&quot;Yes&quot;)


if __name__ == &#39;__main__&#39;:
    solve()
</code></pre></div>



<h2 class="wp-block-heading">B. Default Price</h2>



<div class="hcb_wrap"><pre class="prism line-numbers lang-python" data-lang="Python"><code>import sys
import collections


def solve():
    input = sys.stdin.readline
    mod = 10 ** 9 + 7
    n, m = list(map(int, input().rstrip(&#39;\n&#39;).split()))
    c = list(map(str, input().rstrip(&#39;\n&#39;).split()))
    d = list(map(str, input().rstrip(&#39;\n&#39;).split()))
    p = list(map(int, input().rstrip(&#39;\n&#39;).split()))
    dt = collections.defaultdict(int)
    for i in range(m):
        dt[d[i]] = p[i + 1]
    ans = 0
    for i in range(n):
        if c[i] not in dt:
            ans += p[0]
        else:
            ans += dt[c[i]]
    print(ans)


if __name__ == &#39;__main__&#39;:
    solve()
</code></pre></div>












<p>Copyright &copy; 2026 <a href="https://tabisukelog.com">文系独学プログラマーの仕訳帳</a> All Rights Reserved.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>【GAS】連想配列（辞書型）の使い方一覧</title>
		<link>https://tabisukelog.com/how-to-use-dict-in-gas/</link>
		
		<dc:creator><![CDATA[たびすけ]]></dc:creator>
		<pubDate>Thu, 29 Jun 2023 09:02:38 +0000</pubDate>
				<category><![CDATA[GAS]]></category>
		<category><![CDATA[Edit]]></category>
		<guid isPermaLink="false">https://tabisukelog.com/?p=4186</guid>

					<description><![CDATA[ループ処理 全てのkeyについてループ処理を行うときは次のようなコードになります。 function loop(){ d ... <p>Copyright &copy; 2026 <a href="https://tabisukelog.com">文系独学プログラマーの仕訳帳</a> All Rights Reserved.</p>]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">ループ処理</h2>



<p>全てのkeyについてループ処理を行うときは次のようなコードになります。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript" data-line="3"><code>function loop(){
  d = {&#39;1&#39;: 10, &#39;2&#39;: 20, &#39;3&#39;: 30}
  for(key in d){
    //keyを出力
    console.log(key)
    //valueを出力
    console.log(d[key])
  }
}</code></pre></div>



<h2 class="wp-block-heading">キーの存在チェック</h2>



<p>連想配列にkeyが存在するかは次のようにして確認します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript" data-line="5"><code>function checkKey(){
  d = {}
  //コメントアウト解除してkey追加で結果が逆に
  //d[&#39;key&#39;] = &#39;&#39;
  if(&#39;key&#39; in d){
    console.log(&#39;keyが存在します&#39;)
  } 
  else{
    console.log(&#39;keyは存在しません&#39;)
  }
}</code></pre></div>



<p>または次のようにしても確認できます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript" data-line="5"><code>function checkKey(){
  d = {}
  //コメントアウト解除してkey追加で結果が逆に
  //d[&#39;key&#39;] = &#39;&#39;
  if(d[&#39;key&#39;] === undefined){
    console.log(&#39;keyは存在しません&#39;)
  } 
  else{
    console.log(&#39;keyが存在します&#39;)
  }
}</code></pre></div>
<p>Copyright &copy; 2026 <a href="https://tabisukelog.com">文系独学プログラマーの仕訳帳</a> All Rights Reserved.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>GASでfreee会計にログインして「口座を同期する」ボタンを押下する</title>
		<link>https://tabisukelog.com/login-freee-and-sync-with-gas/</link>
		
		<dc:creator><![CDATA[たびすけ]]></dc:creator>
		<pubDate>Thu, 29 Jun 2023 04:14:41 +0000</pubDate>
				<category><![CDATA[API]]></category>
		<category><![CDATA[GAS]]></category>
		<guid isPermaLink="false">https://tabisukelog.com/?p=4159</guid>

					<description><![CDATA[freee会計の機能で、銀行口座のデータを同期・取得することができます。 しかし、同期の頻度が不定期となっていて「（ほぼ ... <p>Copyright &copy; 2026 <a href="https://tabisukelog.com">文系独学プログラマーの仕訳帳</a> All Rights Reserved.</p>]]></description>
										<content:encoded><![CDATA[
<p>freee会計の機能で、銀行口座のデータを同期・取得することができます。</p>



<p>しかし、同期の頻度が不定期となっていて「（ほぼ）リアルタイムの情報を取得」というニーズには合致しません。</p>



<p>（ほぼ）リアルタイムの情報を取得するためにはデータ取得前にfreee会計画面にある「口座を同期」ボタンを押下する必要がありますが、この機能はfreee会計APIに実装されていません。</p>



<p>RPAやプログラムで「口座を同期」ボタンを押下する必要があり、前提条件として「定期実行が可能」で「サーバーレスな実行が可能」というものがありました。</p>



<p>そこで「GASの定期実行」で「口座を同期」ボタンを押下することにしました。</p>



<h2 class="wp-block-heading">完成コード</h2>



<div class="hcb_wrap"><pre class="prism line-numbers lang-js" data-lang="JavaScript"><code>//freeeへのログイン処理
function loginAndSync() {
  var today = new Date();
  var hours = today.getHours();
  //処理実施の時間帯を限定（夜間は実施しない）
  if(9 &lt;= hours && hours &lt;= 18){
    //ログインページ
    var response = UrlFetchApp.fetch(&#39;https://accounts.secure.freee.co.jp/login/accounting&#39;)
    var cookies = response.getAllHeaders()[&quot;Set-Cookie&quot;];
    var c_freee_accounts_session = cookies[2]
    var token = Parser.data(response.getContentText(&quot;UTF-8&quot;)).from(&#39;name=&quot;authenticity_token&quot; value=&quot;&#39;).to(&#39;&quot; autocomplete&#39;).build()
    
    Utilities.sleep(1000)

    //ログイン処理
    headers = {
      &#39;cookie&#39;: c_freee_accounts_session,
      &#39;user-agent&#39;: &#39;Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36&#39;
    }
    payload = {
      &#39;authenticity_token&#39;: token,
      &#39;email&#39;: &#39;ここにはログインID&#39;,
      //パスワードは暗号化されたもの
      &#39;password&#39;: &#39;ここにはログインパスワード&#39;
    }
    options = {
      &#39;method&#39;: &#39;POST&#39;,
      &#39;headers&#39;: headers,
      &#39;payload&#39;: payload,
      &#39;followRedirects&#39;: false
    }
    response = UrlFetchApp.fetch(&#39;https://accounts.secure.freee.co.jp/login/accounting&#39;, options)
    cookies = response.getAllHeaders()[&quot;Set-Cookie&quot;];
    var c_n_auth_session_id = cookies[0]
    c_freee_accounts_session = cookies[2]

    Utilities.sleep(1000)

    //リダイレクト
    headers = {
      &#39;cookie&#39;: c_n_auth_session_id,
      &#39;user-agent&#39;: &#39;Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36&#39;,
    }
    options = {
      &#39;method&#39;: &#39;GET&#39;,
      &#39;headers&#39;: headers,
      &#39;followRedirects&#39;: false,
    }
    response = UrlFetchApp.fetch(&#39;https://secure.freee.co.jp/users/after_login&#39;, options)
    cookies = response.getAllHeaders()[&quot;Set-Cookie&quot;];

    Utilities.sleep(1000)

    //会計トップへ
    response = UrlFetchApp.fetch(&#39;https://secure.freee.co.jp&#39;, options)
    var c_session_id = response.getAllHeaders()[&quot;Set-Cookie&quot;];
    var csrf_token = Parser.data(response.getContentText(&quot;UTF-8&quot;)).from(&#39;name=&quot;csrf-token&quot; content=&quot;&#39;).to(&#39;&quot; /&gt;&#39;).build()
    headers = {
      &#39;cookie&#39;: c_n_auth_session_id + &quot;; &quot; + c_session_id,
      &#39;user-agent&#39;: &#39;Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36&#39;,
      &#39;X-Company-Id&#39;: &#39;ここには会社コードを入力&#39;,
      &#39;X-Csrf-Token&#39;: csrf_token,
      &#39;X-Xhr-From&#39;: &#39;request&#39;
    }
    options = {
      &#39;method&#39;: &#39;PUT&#39;,
      &#39;headers&#39;: headers,
      &#39;muteHttpExceptions&#39;: true
    }
    id = &#39;ここにはwalletableIDを入力&#39;
    type = &#39;ここにはwalletableTypeを入力&#39;
    response = UrlFetchApp.fetch(&#39;https://secure.freee.co.jp/api/p/walletables/&#39; + id + &#39;/sync?walletable_type=&#39; + type +&#39;&#39;, options)
  }
  else{
    return
  }
}</code></pre></div>
<p>Copyright &copy; 2026 <a href="https://tabisukelog.com">文系独学プログラマーの仕訳帳</a> All Rights Reserved.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>東京海上日動プログラミングコンテスト2023（AtCoder Beginner Contest 307）</title>
		<link>https://tabisukelog.com/abc307-2/</link>
		
		<dc:creator><![CDATA[たびすけ]]></dc:creator>
		<pubDate>Sat, 24 Jun 2023 21:00:00 +0000</pubDate>
				<category><![CDATA[ABC解説]]></category>
		<category><![CDATA[Edit]]></category>
		<guid isPermaLink="false">https://tabisukelog.com/?p=6012</guid>

					<description><![CDATA[<p>Copyright &copy; 2026 <a href="https://tabisukelog.com">文系独学プログラマーの仕訳帳</a> All Rights Reserved.</p>]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">A. Weekly Records</h2>



<div class="hcb_wrap"><pre class="prism line-numbers lang-python" data-lang="Python"><code>import sys


def solve():
    input = sys.stdin.readline
    mod = 10 ** 9 + 7
    n = int(input().rstrip(&#39;\n&#39;))
    a = list(map(int, input().rstrip(&#39;\n&#39;).split()))
    print(*[sum(a[i*7:(i+1)*7]) for i in range(n)])


if __name__ == &#39;__main__&#39;:
    solve()
</code></pre></div>



<h2 class="wp-block-heading">B. racecar</h2>



<div class="hcb_wrap"><pre class="prism line-numbers lang-python" data-lang="Python"><code>import sys


def solve():
    input = sys.stdin.readline
    mod = 10 ** 9 + 7
    n = int(input().rstrip(&#39;\n&#39;))
    s = [str(input().rstrip(&#39;\n&#39;)) for _ in range(n)]
    for i in range(n):
        for j in range(n):
            if i != j:
                ts = s[i] + s[j]
                is_ok = True
                for k in range(len(ts)):
                    if ts[k] != ts[-k-1]:
                        is_ok = False
                        break
                if is_ok:
                    print(&quot;Yes&quot;)
                    exit()
    print(&quot;No&quot;)



if __name__ == &#39;__main__&#39;:
    solve()
</code></pre></div>












<p>Copyright &copy; 2026 <a href="https://tabisukelog.com">文系独学プログラマーの仕訳帳</a> All Rights Reserved.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>東京海上日動プログラミングコンテスト2023（AtCoder Beginner Contest 307）</title>
		<link>https://tabisukelog.com/abc307/</link>
		
		<dc:creator><![CDATA[たびすけ]]></dc:creator>
		<pubDate>Sat, 24 Jun 2023 12:00:00 +0000</pubDate>
				<category><![CDATA[ABC解説]]></category>
		<guid isPermaLink="false">https://tabisukelog.com/?p=6011</guid>

					<description><![CDATA[<p>Copyright &copy; 2026 <a href="https://tabisukelog.com">文系独学プログラマーの仕訳帳</a> All Rights Reserved.</p>]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">A. Weekly Records</h2>



<div class="hcb_wrap"><pre class="prism line-numbers lang-python" data-lang="Python"><code>import sys


def solve():
    input = sys.stdin.readline
    mod = 10 ** 9 + 7
    n = int(input().rstrip(&#39;\n&#39;))
    a = list(map(int, input().rstrip(&#39;\n&#39;).split()))
    print(*[sum(a[i*7:(i+1)*7]) for i in range(n)])


if __name__ == &#39;__main__&#39;:
    solve()
</code></pre></div>


<h2 class="wp-block-heading">B. racecar</h2>



<div class="hcb_wrap"><pre class="prism line-numbers lang-python" data-lang="Python"><code>import sys


def solve():
    input = sys.stdin.readline
    mod = 10 ** 9 + 7
    n = int(input().rstrip(&#39;\n&#39;))
    s = [str(input().rstrip(&#39;\n&#39;)) for _ in range(n)]
    for i in range(n):
        for j in range(n):
            if i != j:
                ts = s[i] + s[j]
                is_ok = True
                for k in range(len(ts)):
                    if ts[k] != ts[-k-1]:
                        is_ok = False
                        break
                if is_ok:
                    print(&quot;Yes&quot;)
                    exit()
    print(&quot;No&quot;)



if __name__ == &#39;__main__&#39;:
    solve()
</code></pre></div>






<p>Copyright &copy; 2026 <a href="https://tabisukelog.com">文系独学プログラマーの仕訳帳</a> All Rights Reserved.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>トヨタ自動車プログラミングコンテスト2023#3(AtCoder Beginner Contest 306)</title>
		<link>https://tabisukelog.com/abc306/</link>
		
		<dc:creator><![CDATA[たびすけ]]></dc:creator>
		<pubDate>Sat, 17 Jun 2023 21:00:00 +0000</pubDate>
				<category><![CDATA[ABC解説]]></category>
		<guid isPermaLink="false">https://tabisukelog.com/?p=6010</guid>

					<description><![CDATA[<p>Copyright &copy; 2026 <a href="https://tabisukelog.com">文系独学プログラマーの仕訳帳</a> All Rights Reserved.</p>]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">A. Echo</h2>



<div class="hcb_wrap"><pre class="prism line-numbers lang-python" data-lang="Python"><code>import sys


def solve():
    input = sys.stdin.readline
    mod = 10 ** 9 + 7
    n = int(input().rstrip(&#39;\n&#39;))
    s = str(input().rstrip(&#39;\n&#39;))
    print(&quot;&quot;.join([v * 2 for v in s]))


if __name__ == &#39;__main__&#39;:
    solve()
</code></pre></div>



<h2 class="wp-block-heading">B. Base 2</h2>



<div class="hcb_wrap"><pre class="prism line-numbers lang-python" data-lang="Python"><code>import sys


def solve():
    input = sys.stdin.readline
    mod = 10 ** 9 + 7
    ans = 0
    a = list(map(int, input().rstrip(&#39;\n&#39;).split()))
    for i in range(len(a)):
        ans += pow(2, i) * a[i]
    print(ans)


if __name__ == &#39;__main__&#39;:
    solve()
</code></pre></div>



<h2 class="wp-block-heading">C. Centers</h2>



<div class="hcb_wrap"><pre class="prism line-numbers lang-python" data-lang="Python"><code>import sys
import collections


def solve():
    input = sys.stdin.readline
    mod = 10 ** 9 + 7
    n = int(input().rstrip(&#39;\n&#39;))
    a = list(map(int, input().rstrip(&#39;\n&#39;).split()))
    ls = []
    d = collections.defaultdict(int)
    for i in range(3 * n):
        if a[i] not in d:
            d[a[i]] += 1
        elif d[a[i]] == 1:
            ls.append([i, a[i]])
            d[a[i]] += 1
    ls.sort()
    print(*[ls[i][1] for i in range(n)])


if __name__ == &#39;__main__&#39;:
    solve()
</code></pre></div>



<h2 class="wp-block-heading">D. Poisonous Full-Course</h2>



<div class="hcb_wrap"><pre class="prism line-numbers lang-python" data-lang="Python"><code>import sys


def solve():
    input = sys.stdin.readline
    mod = 10 ** 9 + 7
    n = int(input().rstrip(&#39;\n&#39;))
    dp = [[-pow(10, 30)] * 2 for _ in range(n)]
    for i in range(n):
        x, y = list(map(int, input().rstrip(&#39;\n&#39;).split()))
        if i == 0:
            if x == 0:
                dp[i][0] = max(0, y)
                dp[i][1] = 0
            else:
                dp[i][1] = max(0, y)
                dp[i][0] = 0
        else:
            if x == 0:
                dp[i][0] = max(dp[i-1][0], dp[i-1][0] + y, dp[i-1][1] + y)
                dp[i][1] = dp[i-1][1]
            else:
                dp[i][1] = max(dp[i-1][1], dp[i-1][0] + y)
                dp[i][0] = dp[i-1][0]
    print(max(dp[-1]))


if __name__ == &#39;__main__&#39;:
    solve()
</code></pre></div>








<p>Copyright &copy; 2026 <a href="https://tabisukelog.com">文系独学プログラマーの仕訳帳</a> All Rights Reserved.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>京セラプログラミングコンテスト2023(AtCoder Beginner Contest 305)</title>
		<link>https://tabisukelog.com/abc305/</link>
		
		<dc:creator><![CDATA[たびすけ]]></dc:creator>
		<pubDate>Sat, 10 Jun 2023 21:00:00 +0000</pubDate>
				<category><![CDATA[ABC解説]]></category>
		<guid isPermaLink="false">https://tabisukelog.com/?p=6009</guid>

					<description><![CDATA[<p>Copyright &copy; 2026 <a href="https://tabisukelog.com">文系独学プログラマーの仕訳帳</a> All Rights Reserved.</p>]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">A. Water Station</h2>



<div class="hcb_wrap"><pre class="prism line-numbers lang-python" data-lang="Python"><code>import sys


def solve():
    input = sys.stdin.readline
    mod = 10 ** 9 + 7
    n = int(input().rstrip(&#39;\n&#39;))
    ls = []
    for i in range(0, 101, 5):
        ls.append([abs(i-n), i])
    ls.sort()
    print(ls[0][1])


if __name__ == &#39;__main__&#39;:
    solve()
</code></pre></div>



<h2 class="wp-block-heading">B. ABCDEFG</h2>



<div class="hcb_wrap"><pre class="prism line-numbers lang-python" data-lang="Python"><code>import sys


def solve():
    input = sys.stdin.readline
    mod = 10 ** 9 + 7
    d = {&quot;A&quot;: 0, &quot;B&quot;: 3, &quot;C&quot;: 4, &quot;D&quot;: 8, &quot;E&quot;: 9, &quot;F&quot;: 14, &quot;G&quot;: 23}
    p, q = list(map(str, input().rstrip(&#39;\n&#39;).split()))

    print(abs(d[p] - d[q]))


if __name__ == &#39;__main__&#39;:
    solve()
</code></pre></div>



<h2 class="wp-block-heading">C. Snuke the Cookie Picker</h2>



<div class="hcb_wrap"><pre class="prism line-numbers lang-python" data-lang="Python"><code>import sys


def solve():
    input = sys.stdin.readline
    mod = 10 ** 9 + 7
    h, w = list(map(int, input().rstrip(&#39;\n&#39;).split()))
    s = [list(str(input().rstrip(&#39;\n&#39;))) for _ in range(h)]
    mxx, mxy = 0, 0
    mnx, mny = pow(10, 30), pow(10, 30)
    for i in range(h):
        for j in range(w):
            if s[i][j] == &quot;#&quot;:
                mxx = max(i, mxx)
                mxy = max(j, mxy)
                mnx = min(i, mnx)
                mny = min(j, mny)
    for i in range(mnx, mxx + 1):
        for j in range(mny, mxy + 1):
            if s[i][j] != &quot;#&quot;:
                print(i + 1, j + 1)


if __name__ == &#39;__main__&#39;:
    solve()
</code></pre></div>



<h2 class="wp-block-heading">D. Sleep Log</h2>



<div class="hcb_wrap"><pre class="prism line-numbers lang-python" data-lang="Python"><code>import sys
import bisect


def solve():
    input = sys.stdin.readline
    mod = 10 ** 9 + 7
    n = int(input().rstrip(&#39;\n&#39;))
    a = list(map(int, input().rstrip(&#39;\n&#39;).split()))
    total = 0
    time = []
    for i in range(n):
        if i == 0:
            time.append(total)
        else:
            if i % 2 == 0:
                total += a[i] - a[i-1]
            time.append(total)
    q = int(input().rstrip(&#39;\n&#39;))
    for i in range(q):
        l, r = list(map(int, input().rstrip(&#39;\n&#39;).split()))
        l_pos = bisect.bisect_right(a, l)
        r_pos = bisect.bisect_left(a, r)
        ans = time[r_pos] - time[l_pos]
        if r_pos % 2 == 0:
            ans -= a[r_pos] - r
        if l_pos % 2 == 0:
            ans += a[l_pos] - l
        print(ans)


if __name__ == &#39;__main__&#39;:
    solve()
</code></pre></div>



<h2 class="wp-block-heading">E. Art Gallery on Graph</h2>



<div class="hcb_wrap"><pre class="prism line-numbers lang-python" data-lang="Python"><code>import sys
import collections


def solve():
    input = sys.stdin.readline
    mod = 10 ** 9 + 7
    n, m, k = list(map(int, input().rstrip(&#39;\n&#39;).split()))
    tmd = collections.defaultdict(list)
    for i in range(m):
        tma, tmb = list(map(int, input().rstrip(&#39;\n&#39;).split()))
        tmd[tma-1] += [tmb-1]
        tmd[tmb-1] += [tma-1]

    fq = collections.defaultdict(int)
    ph = sorted([list(map(int, input().rstrip(&#39;\n&#39;).split())) for _ in range(k)], key=lambda x: x[1], reverse=True)
    for p, h in ph:
        if len(fq) == n:
            break
        ql = [[h, p-1]]
        ql = collections.deque(ql)
        fq[p-1] = h
        while True:
            if len(ql) != 0:
                cost, tmp = ql.popleft()
                for tmv in tmd[tmp]:
                    if fq[tmv] &lt; cost - 1:
                        ql.append([cost - 1, tmv])
                        fq[tmv] = cost - 1
            else:
                break
    print(len(fq))
    print(*sorted([k + 1 for k in fq.keys()]))


if __name__ == &#39;__main__&#39;:
    solve()
</code></pre></div>






<p>Copyright &copy; 2026 <a href="https://tabisukelog.com">文系独学プログラマーの仕訳帳</a> All Rights Reserved.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>東京海上日動プログラミングコンテスト2023（AtCoder Beginner Contest 304）</title>
		<link>https://tabisukelog.com/abc304/</link>
		
		<dc:creator><![CDATA[たびすけ]]></dc:creator>
		<pubDate>Sat, 03 Jun 2023 12:00:00 +0000</pubDate>
				<category><![CDATA[ABC解説]]></category>
		<guid isPermaLink="false">https://tabisukelog.com/?p=6008</guid>

					<description><![CDATA[<p>Copyright &copy; 2026 <a href="https://tabisukelog.com">文系独学プログラマーの仕訳帳</a> All Rights Reserved.</p>]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">A. First Player</h2>



<div class="hcb_wrap"><pre class="prism line-numbers lang-python" data-lang="Python"><code>import sys


def solve():
    input = sys.stdin.readline
    mod = 10 ** 9 + 7
    n = int(input().rstrip(&#39;\n&#39;))
    al = []
    sl = []
    for i in range(n):
        s, a = list(map(str, str(input().rstrip(&#39;\n&#39;)).split()))
        al.append(int(a))
        sl.append(s)
    st = al.index(min(al))
    for i in range(n):
        print(sl[(i+st) % n])


if __name__ == &#39;__main__&#39;:
    solve()
</code></pre></div>



<h2 class="wp-block-heading">B. Subscribers</h2>



<div class="hcb_wrap"><pre class="prism line-numbers lang-python" data-lang="Python"><code>import sys


def solve():
    input = sys.stdin.readline
    mod = 10 ** 9 + 7
    n = list(str(input().rstrip(&#39;\n&#39;)))
    for i in range(3, len(n)):
        n[i] = &quot;0&quot;
    print(&quot;&quot;.join(n))


if __name__ == &#39;__main__&#39;:
    solve()
</code></pre></div>



<h2 class="wp-block-heading">C. Virus</h2>



<div class="hcb_wrap"><pre class="prism line-numbers lang-python" data-lang="Python"><code>import sys
import collections


def solve():
    input = sys.stdin.readline
    mod = 10 ** 9 + 7
    n, d = list(map(int, input().rstrip(&#39;\n&#39;).split()))
    xy = [list(map(int, input().rstrip(&#39;\n&#39;).split())) for _ in range(n)]
    dq = collections.deque([0])
    fq = collections.defaultdict(int)
    fq[0]
    while len(dq):
        t = dq.popleft()
        for i in range(n):
            if i != t:
                u = pow(pow(xy[t][0] - xy[i][0], 2) + pow(xy[t][1] - xy[i][1], 2), 0.5)
                if u &lt;= d:
                    if i not in fq:
                        dq.append(i)
                        fq[i]
    for i in range(n):
        if i in fq:
            print(&quot;Yes&quot;)
        else:
            print(&quot;No&quot;)


if __name__ == &#39;__main__&#39;:
    solve()
</code></pre></div>



<h2 class="wp-block-heading">D. A Piece of Cake</h2>



<div class="hcb_wrap"><pre class="prism line-numbers lang-python" data-lang="Python"><code>import collections
import sys
import bisect


def solve():
    input = sys.stdin.readline
    mod = 10 ** 9 + 7
    w, h = list(map(int, input().rstrip(&#39;\n&#39;).split()))
    n = int(input().rstrip(&#39;\n&#39;))
    pq = [list(map(int, input().rstrip(&#39;\n&#39;).split())) for _ in range(n)]
    a = int(input().rstrip(&#39;\n&#39;))
    al = list(map(int, input().rstrip(&#39;\n&#39;).split()))
    b = int(input().rstrip(&#39;\n&#39;))
    bl = list(map(int, input().rstrip(&#39;\n&#39;).split()))
    d = collections.defaultdict(int)
    for i in range(n):
        p, q = pq[i]
        a_pos = bisect.bisect_left(al, p)
        b_pos = bisect.bisect_left(bl, q)
        d[a_pos, b_pos] += 1
    mx = 0
    mn = pow(10, 30)
    for k, v in d.items():
        mx = max(mx, v)
        mn = min(mn, v)
    mn = 0 if len(d) != (a + 1) * (b + 1) else mn
    print(mn, mx)


if __name__ == &#39;__main__&#39;:
    solve()
</code></pre></div>



<h2 class="wp-block-heading">E. Good Graph</h2>



<div class="hcb_wrap"><pre class="prism line-numbers lang-python" data-lang="Python"><code>import sys
import collections


class AlgUnionFind():
    def __init__(self, n):
        self.n = n
        self.parents = [-1] * n

    def find(self, x):
        if self.parents[x] &lt; 0:
            return x
        else:
            self.parents[x] = self.find(self.parents[x])
            return self.parents[x]

    def union(self, x, y):
        x = self.find(x)
        y = self.find(y)

        if x == y:
            return

        if self.parents[x] &gt; self.parents[y]:
            x, y = y, x

        self.parents[x] += self.parents[y]
        self.parents[y] = x

    def size(self, x):
        return -self.parents[self.find(x)]

    def same(self, x, y):
        return self.find(x) == self.find(y)

    def members(self, x):
        root = self.find(x)
        return [i for i in range(self.n) if self.find(i) == root]

    def roots(self):
        return [i for i, x in enumerate(self.parents) if x &lt; 0]

    def group_count(self):
        return len(self.roots())

    def all_group_members(self):
        return {r: self.members(r) for r in self.roots()}

    def __str__(self):
        return &#39;\n&#39;.join(&#39;{}: {}&#39;.format(r, self.members(r)) for r in self.roots())


def solve():
    input = sys.stdin.readline
    mod = 10 ** 9 + 7
    n, m = list(map(int, input().rstrip(&#39;\n&#39;).split()))
    uf = AlgUnionFind(n)
    for i in range(m):
        v1, v2 = list(map(int, input().rstrip(&#39;\n&#39;).split()))
        uf.union(v1-1, v2-1)
    k = int(input().rstrip(&#39;\n&#39;))
    d = collections.defaultdict(int)
    for i in range(k):
        x, y = list(map(int, input().rstrip(&#39;\n&#39;).split()))
        x, y = uf.find(x-1), uf.find(y-1)
        if x &gt; y:
            x, y = y, x
        d[x, y]
    q = int(input().rstrip(&#39;\n&#39;))
    for i in range(q):
        p, q = list(map(int, input().rstrip(&#39;\n&#39;).split()))
        p, q = uf.find(p-1), uf.find(q-1)
        if p &gt; q:
            p, q = q, p
        if (p, q) in d:
            print(&quot;No&quot;)
        else:
            print(&quot;Yes&quot;)


if __name__ == &#39;__main__&#39;:
    print(pow(3, 2023) * pow(7, 604))
    solve()
</code></pre></div>






<p>Copyright &copy; 2026 <a href="https://tabisukelog.com">文系独学プログラマーの仕訳帳</a> All Rights Reserved.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>日鉄ソリューションズプログラミングコンテスト2023（AtCoder Beginner Contest 303）</title>
		<link>https://tabisukelog.com/abc303/</link>
		
		<dc:creator><![CDATA[たびすけ]]></dc:creator>
		<pubDate>Sat, 27 May 2023 12:00:00 +0000</pubDate>
				<category><![CDATA[ABC解説]]></category>
		<guid isPermaLink="false">https://tabisukelog.com/?p=6007</guid>

					<description><![CDATA[<p>Copyright &copy; 2026 <a href="https://tabisukelog.com">文系独学プログラマーの仕訳帳</a> All Rights Reserved.</p>]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">A. Similar String</h2>



<div class="hcb_wrap"><pre class="prism line-numbers lang-python" data-lang="Python"><code>import sys


def solve():
    input = sys.stdin.readline
    mod = 10 ** 9 + 7
    n = int(input().rstrip(&#39;\n&#39;))
    s = str(input().rstrip(&#39;\n&#39;)).replace(&quot;1&quot;, &quot;l&quot;).replace(&quot;0&quot;, &quot;o&quot;)
    t = str(input().rstrip(&#39;\n&#39;)).replace(&quot;1&quot;, &quot;l&quot;).replace(&quot;0&quot;, &quot;o&quot;)
    print(&quot;Yes&quot; if s == t else &quot;No&quot;)


if __name__ == &#39;__main__&#39;:
    solve()
</code></pre></div>



<h2 class="wp-block-heading">B. Discord</h2>



<div class="hcb_wrap"><pre class="prism line-numbers lang-python" data-lang="Python"><code>import sys


def solve():
    input = sys.stdin.readline
    mod = 10 ** 9 + 7
    n, m = list(map(int, input().rstrip(&#39;\n&#39;).split()))
    a = [list(map(int, input().rstrip(&#39;\n&#39;).split())) for _ in range(m)]
    ls = [[False] * n for _ in range(n)]
    for i in range(n):
        ls[i][i] = True
    for i in range(m):
        for j in range(1, n):
            ls[a[i][j]-1][a[i][j-1]-1] = True
            ls[a[i][j-1]-1][a[i][j]-1] = True
    cnt = 0
    for i in range(n):
        for j in range(n):
            cnt += 1 if not ls[i][j] else 0
    print(cnt // 2)


if __name__ == &#39;__main__&#39;:
    solve()
</code></pre></div>



<h2 class="wp-block-heading">C. Dash</h2>



<div class="hcb_wrap"><pre class="prism line-numbers lang-python" data-lang="Python"><code>import sys
import collections


def solve():
    input = sys.stdin.readline
    mod = 10 ** 9 + 7
    n, m, h, k = list(map(int, input().rstrip(&#39;\n&#39;).split()))
    s = str(input().rstrip(&#39;\n&#39;))
    d = collections.defaultdict(int)
    for i in range(m):
        x, y = list(map(int, input().rstrip(&#39;\n&#39;).split()))
        d[x, y] = 1
    x, y = 0, 0
    for i in range(n):
        h -= 1
        if h &lt; 0:
            print(&quot;No&quot;)
            exit()
        if s[i] == &quot;R&quot;:
            x += 1
        if s[i] == &quot;L&quot;:
            x -= 1
        if s[i] == &quot;U&quot;:
            y += 1
        if s[i] == &quot;D&quot;:
            y -= 1
        if d[x, y] == 1:
            if h &lt; k:
                d[x, y] -= 1
                h = k
    print(&quot;Yes&quot;)


if __name__ == &#39;__main__&#39;:
    solve()
</code></pre></div>



<h2 class="wp-block-heading">D. Shift vs. CapsLock</h2>



<div class="hcb_wrap"><pre class="prism line-numbers lang-python" data-lang="Python"><code>import sys


def solve():
    input = sys.stdin.readline
    mod = 10 ** 9 + 7
    x, y, z = list(map(int, input().rstrip(&#39;\n&#39;).split()))
    s = str(input().rstrip(&#39;\n&#39;))
    dp = [[pow(10, 30)] * (len(s) + 1) for _ in range(2)]
    dp[0][0] = 0
    for i in range(len(s)):
        if s[i] == &quot;a&quot;:
            dp[0][i+1] = min(dp[0][i+1], dp[0][i] + x, dp[1][i] + z + x)
            dp[1][i+1] = min(dp[1][i+1], dp[1][i] + y, dp[0][i] + z + y)
        else:
            dp[0][i+1] = min(dp[0][i+1], dp[0][i] + y, dp[1][i] + z + y)
            dp[1][i+1] = min(dp[1][i+1], dp[1][i] + x, dp[0][i] + z + x)
    print(min(dp[0][-1], dp[1][-1]))


if __name__ == &#39;__main__&#39;:
    solve()
</code></pre></div>








<p>Copyright &copy; 2026 <a href="https://tabisukelog.com">文系独学プログラマーの仕訳帳</a> All Rights Reserved.</p>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>トヨタ自動車プログラミングコンテスト2023#2(AtCoder Beginner Contest 302)</title>
		<link>https://tabisukelog.com/abc302/</link>
		
		<dc:creator><![CDATA[たびすけ]]></dc:creator>
		<pubDate>Sat, 20 May 2023 12:00:00 +0000</pubDate>
				<category><![CDATA[ABC解説]]></category>
		<guid isPermaLink="false">https://tabisukelog.com/?p=6006</guid>

					<description><![CDATA[<p>Copyright &copy; 2026 <a href="https://tabisukelog.com">文系独学プログラマーの仕訳帳</a> All Rights Reserved.</p>]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">A. Attack</h2>



<div class="hcb_wrap"><pre class="prism line-numbers lang-python" data-lang="Python"><code>import sys


def solve():
    input = sys.stdin.readline
    mod = 10 ** 9 + 7
    a, b = list(map(int, input().rstrip(&#39;\n&#39;).split()))
    print((a + b - 1) // b)


if __name__ == &#39;__main__&#39;:
    solve()
</code></pre></div>



<h2 class="wp-block-heading">B. Find snuke</h2>



<div class="hcb_wrap"><pre class="prism line-numbers lang-python" data-lang="Python"><code>import sys
import itertools


def solve():
    input = sys.stdin.readline
    mod = 10 ** 9 + 7
    n, m = list(map(int, input().rstrip(&#39;\n&#39;).split()))
    s = [str(input().rstrip(&#39;\n&#39;)) for _ in range(n)]
    for v in itertools.permutations(s, n):
        is_ok = True
        for i in range(1, n):
            cnt = 0
            for j in range(m):
                if v[i][j] != v[i-1][j]:
                    cnt += 1
            if cnt != 1:
                is_ok = False
        if is_ok:
            print(&quot;Yes&quot;)
            exit()
    print(&quot;No&quot;)


if __name__ == &#39;__main__&#39;:
    solve()
</code></pre></div>



<h2 class="wp-block-heading">C. Almost Equal</h2>



<div class="hcb_wrap"><pre class="prism line-numbers lang-python" data-lang="Python"><code>import sys
import bisect


def solve():
    input = sys.stdin.readline
    mod = 10 ** 9 + 7
    n, m, d = list(map(int, input().rstrip(&#39;\n&#39;).split()))
    a = sorted(list(map(int, input().rstrip(&#39;\n&#39;).split())))
    b = sorted(list(map(int, input().rstrip(&#39;\n&#39;).split())))
    ans = -1
    for i in range(n):
        pos = bisect.bisect_right(b, a[i] + d)
        if pos != 0:
            if abs(b[pos-1] - a[i]) &lt;= d:
                ans = max(ans, b[pos-1] + a[i])
    print(ans)


if __name__ == &#39;__main__&#39;:
    solve()
</code></pre></div>



<h2 class="wp-block-heading">D. Impartial Gift</h2>



<div class="hcb_wrap"><pre class="prism line-numbers lang-python" data-lang="Python"><code>import sys


def solve():
    input = sys.stdin.readline
    mod = 10 ** 9 + 7
    h, w = list(map(int, input().rstrip(&#39;\n&#39;).split()))
    s = [list(str(input().rstrip(&#39;\n&#39;))) for _ in range(h)]
    for i in range(h):
        for j in range(w):
            if &quot;&quot;.join([s[i+k][j] if 0 &lt;= i + k &lt; h else &quot;x&quot; for k in range(5)]) == &quot;snuke&quot;:
                for k in range(5):
                    print(i + k + 1, j + 1)
            if &quot;&quot;.join([s[i][j+k] if 0 &lt;= j + k &lt; w else &quot;x&quot; for k in range(5)]) == &quot;snuke&quot;:
                for k in range(5):
                    print(i + 1, j + k + 1)
            if &quot;&quot;.join([s[i-k][j] if 0 &lt;= i - k &lt; h else &quot;x&quot; for k in range(5)]) == &quot;snuke&quot;:
                for k in range(5):
                    print(i - k + 1, j + 1)
            if &quot;&quot;.join([s[i][j-k] if 0 &lt;= j - k &lt; w else &quot;x&quot; for k in range(5)]) == &quot;snuke&quot;:
                for k in range(5):
                    print(i + 1, j - k + 1)
            if &quot;&quot;.join([s[i+k][j+k] if 0 &lt;= i + k &lt; h and 0 &lt;= j + k &lt; w else &quot;x&quot; for k in range(5)]) == &quot;snuke&quot;:
                for k in range(5):
                    print(i + k + 1, j + k + 1)
            if &quot;&quot;.join([s[i-k][j-k] if 0 &lt;= i - k &lt; h and 0 &lt;= j - k &lt; w else &quot;x&quot; for k in range(5)]) == &quot;snuke&quot;:
                for k in range(5):
                    print(i - k + 1, j - k + 1)
            if &quot;&quot;.join([s[i-k][j+k] if 0 &lt;= i - k &lt; h and 0 &lt;= j + k &lt; w else &quot;x&quot; for k in range(5)]) == &quot;snuke&quot;:
                for k in range(5):
                    print(i - k + 1, j + k + 1)
            if &quot;&quot;.join([s[i+k][j-k] if 0 &lt;= i + k &lt; h and 0 &lt;= j - k &lt; w else &quot;x&quot; for k in range(5)]) == &quot;snuke&quot;:
                for k in range(5):
                    print(i + k + 1, j - k + 1)


if __name__ == &#39;__main__&#39;:
    solve()
</code></pre></div>








<p>Copyright &copy; 2026 <a href="https://tabisukelog.com">文系独学プログラマーの仕訳帳</a> All Rights Reserved.</p>]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
