yokobuttonの不定期で競技プログラミングをするブログ

不定期で解けた競技プログラミングコンテストの問題を載せています。

2021-01-01から1年間の記事一覧

JavaScriptでブロックくずしゲーム

下のURLを参考に「そのままのJavaScriptを使ったブロックくずしゲーム」をつくりました。 https://developer.mozilla.org/ja/docs/Games/Tutorials/2D_Breakout_game_pure_JavaScript #canvas{ border:1px solid #000000; } /*alert("GAME START!");*/ let s…

AtCoder Beginner Contest 233 C - Product

問題の要約 N個の袋がある。 袋iにはLi個のボールが入っていて、袋iのj(1<=j<=Li)番目のボールには正の整数ai,jが書かれている。 それぞれの袋から1つずつボールを取り出す。 取り出したボールに書かれた数の総積がXになるような取り出し方は何通りあるか? …

AtCoder Beginner Contest 233 B - A Reverse

問題の要約 整数L,Rと、英小文字のみからなる文字列Sが与えられる。 SのL文字目からR文字目までの部分を反転した文字列を出力しろ。制約 1<=|S|<=10^5 1<=L<=R<=|S|入力 L R S考え方 1,C++の場合、文字列を逆順にするにはreverse関数を使うことができる。実…

AtCoder Beginner Contest 233 A - 10yen Stamp

問題の要約 手紙を出したいので、X円切手が1枚だけ貼られた封筒を用意した。 手紙を届けるためには、貼られている切手の総額がY円以上である必要がある。 この封筒に10円切手を何枚か貼り足すことで、貼られている切手の総額をY円以上にしたい。 最小で何枚…

M-SOLUTIONS プロコンオープン2021(AtCoder Beginner Contest 232) D - Weak Takahashi

問題の要約 縦H行、横W行のH*Wマスからなるグリッドがある。上からi行目、左からj列目のマスを(i,j)と表す。 各マスの状態は文字Ci,jで表され、Ci,j=.ならばマス(i,j)は空きマスであり、Ci,j=#ならばマス(i,j)は壁である。 今、グリッド上を歩こうとしている…

M-SOLUTIONS プロコンオープン2021(AtCoder Beginner Contest 232) C - Graph Isomorphism

問題の要約 N個のボールにM本のひもを取り付けたおもちゃが2つある。 1つのおもちゃには、ボールに1,...,Nと番号が付けられており、i(1<=i<=M)本目のひもはボールAiとボールBiを結んでいる。 もう1つのおもちゃも同様に、ボールに1,...,Nと番号が付けられて…

M-SOLUTIONS プロコンオープン2021(AtCoder Beginner Contest 232) B - Caesar Cipher

問題の要約 英小文字からなる文字列Sを持っている。 文字列Sに対して、下記の操作をちょうど1回行う。 ・まず、非負整数Kを選ぶ。 ・その後、Sの各文字をK個後ろの英小文字に変更する。 ただし、 ・aの1個後ろの英小文字はbであり、 ・... ・zの1個後ろの英…

M-SOLUTIONS プロコンオープン2021(AtCoder Beginner Contest 232) A - QQ solver

問題の要約 3文字からなる文字列Sが与えられる。Sは、1以上9以下の整数a,bと文字xを、axbのように順につなげて得られる。 aとbの積を求めよ。制約 Sの長さは3 Sの1文字目および3文字目は1以上9以下の整数 Sの2文字目はx入力 S考え方 1,Sの1文字目と3文字目を…

パナソニックプログラミングコンテスト2021(AtCoder Beginner Contest 231) D - Neighbors

問題の要約 1からNの番号がついたN人を横一列に並べる方法のうち,以下の形式のM個の条件全てを満たすものが存在するか判定しろ。 ・条件:人Aiと人Biは隣り合っている制約 2<=N<=10^5 0<=M<=10^5 1<=Ai<Bi<=N (Ai,Bi)は相異なる入力 N M A1 B1 ... AM BM考え方 1,人の番号を1ずらす 1<=i<=N => 0<=i<=N-1 2,グラフで考える。 3,(Ai,Bi)が相異なること</bi<=n>…

パナソニックプログラミングコンテスト2021(AtCoder Beginner Contest 231) C - Counting 2

問題の要約 N人の生徒からなるクラスがあり,i(1<=i<=N)番目の生徒の身長はAi。 j=1,2,...,Qについて,以下の質問に答えよ。 ・N人のうち,身長がxj以上の生徒は何人か?制約 1<=N,Q<=2*10^5 1<=Ai<=10^9 1<=xj<=10^9入力 N Q A1 A2 ... AN x1 x2 ... xQ出力 Q行…

パナソニックプログラミングコンテスト2021(AtCoder Beginner Contest 231) B - Election

問題の要約 選挙が行われる。 N人が投票を行い,i(1<=i<=N)番目の人はSiという名前の候補者に投票した。 得票数が最大の候補者の名前を答えよ。なお,与えられる入力では得票数が最大の候補者は一意に定まる。制約 1<=N<=100入力 N S1 ... SN考え方 1,投票者の…

パナソニックプログラミングコンテスト2021(AtCoder Beginner Contest 231) A - Water Pressure

問題の要約 水圧は水深のみに依存し,水深x[m]の場所ではx/100[MPa]になるものとする。 水深D[m]の場所の水圧は何[MPa]か?制約 1<=D<=10000入力 D 考え方 1,問題文の通りD/100を出力する。 入力はdoubleで受け取り,出力の際は小数点以下が出力されるようにす…

AtCoder Beginner Contest 215 C - One More aab aba baa

問題の要約 文字列Sの各文字を並べ替えて作ることが可能な文字列を辞書順に全て列挙したとき,前からK番目にくる文字列を求めよ。制約 1<=|S|<=8入力 S K考え方 1,制約からSの文字数が少ないので,c++の場合next_permutation関数で全ての並べ替えが間にあう。…

AtCoder Beginner Contest 215 B - log2(N)

問題の要約 正整数Nが与えられるので,2^k<=Nとなる最大の整数kを求めよ。制約 1<=N<=10^18入力 N考え方 1,入力例3からN=10^18のkは59なのでfor文で間に合う。 for文はiを0から60まで回す。 2^i<=Nの条件が満たされなくなったとき,k=i-1としてkを出力。実際の…

AtCoder Beginner Contest 215 A - Your First Judge

問題の要約 文字列Sが与えられるので,この文字列がHello,World!と完全に一致するならAC,そうでないならWAと出力しろ。制約 1<=|S|<=15 Sは英大小文字と,と!のみからなる。入力 S考え方 1,if文で文字列が一致するかどうかで条件分岐するだけ。実際のプログラ…

AtCoder Beginner Contest 220 C - Long Sequence

問題の要約 長さNの正整数のみからなる数列A=(A1,...,AN)がある。 Aを10^100回連結した数列を数列Bとする。 Bの項を前から順に足したとき,和が初めてXを超えるのは何項目まで足したときか? すなわち,以下の式を満たす最小の整数kを求めよ。 Σ{i=1,k}Bi > X制…

AtCoder Beginner Contest 220 B - Base K

問題の要約 整数A,BがK進法表記で与えられる。 A*Bを10進法表記で出力しろ。制約 1<=K<=10 1<=A,B<=10^5入力 K A B考え方 1,A,Bを10進法に直してからA*Bを出力すればよい。 2,K進法のXを10進法に直す方法。 K進法の第一位をX1として10進法に直すとX1*(K^0)と…

AtCoder Beginner Contest 220 A - Find Multiple

問題の要約 A以上B以下であるようなCの倍数を,1つ出力しろ。 条件を満たす数が存在しない場合は-1を出力しろ。制約 1<=A<=B<=1000 1<=C<=1000入力 A B C考え方 1,A,Bの範囲が小さいので,1*CからCの倍数をB以下まで探索する。 2,A以上のCの倍数があったらそれ…

NECプログラミングコンテスト2021(AtCoder Beginner Contest 229) C - Cheese

問題の要約 今,目の前にN種類のチーズがある。 i種類目のチーズは1[g]あたりのおいしさがAiで,Bi[g]ある。 ピザのおいしさは,ピザに乗せたチーズのおいしさの総和で決まる。 乗せたチーズの重さは合計でW[g]以下である必要がある。 この条件のもとで,可能な…

NECプログラミングコンテスト2021(AtCoder Beginner Contest 229) B - Hard Calculation

問題の要約 正整数A,Bが与えられる。 A+Bを(十進法で)計算する時,繰り上がりが生じないならEasy,生じるならHardと出力する。制約 A,Bは整数 1<=A,B<=10^18考え方 1,制約からA,Bの値は大きすぎるのでstringで入力をもらう。 2,A,Bを一の位から順に,数字に直し…

NECプログラミングコンテスト2021(AtCoder Beginner Contest 229) A - First Grid

問題の要約 縦2行,横2列のグリッドがある。 このグリッドは,各マスが黒か白であり,少なくとも2つの黒マスを含む。 各マスの色の情報は文字列S1,S2として,以下の形式で与えられる。 ・文字列Siのj文字目が#であれば上からiマス目,左からjマス目は黒 ・文字列S…

AtCoder Beginner Contest 222 C - Swiss-System Tournament

問題の要約 1から2Nの番号がついた2N人でじゃんけん大会をする。 大会はMラウンドからなり,各ラウンドは,全ての人が1度ずつ参加するような1対1のN試合からなる。 i=1,...,Mについて,iラウンド目の終了時点での順位を次のように決める。 ・iラウンド目までの…

AtCoder Beginner Contest 222 B - Failing Grade

問題の要約 N人の学生が試験を受けた。学生には学生1,学生2,...,学生Nと番号がついていて,学生iはai点を取った。 P点未満の点数を取った学生は"不可"となり単位を取得できない。"不可"となった学生の人数を答えよ。制約 1<=N<=10^5 1<=P<=100 1<=ai<=100(1<=i…

AtCoder Beginner Contest 222 A - Four Digits

問題の要約 0以上9999以下の整数Nが与えられる。 Nの先頭に必要なだけ0をつけ,4桁の文字列にしたものを出力せよ。制約 0<=N<=9999入力 N考え方 1,文字列で入力を受け取る 2,文字列の長さ-4個の0を文字列の先頭に加える。実際のプログラム#include<iostream>#include<string> us</string></iostream>…

AtCoder Beginner Contest 223 C - Doukasen

問題の要約 N本の導火線を一直線に接着したものがある。 左からi本目の導火線の長さはAicmで,1秒当たりBicmの一定の速度で燃える。 この導火線の左端と右端から同時に火をつけるとき,2つの火がぶつかる場所が着火前の導火線の左端から何cmの地点か求めよ。制…

AtCoder Beginner Contest 223 B - String Shifting

問題の要約 空でない文字列に対し,先頭の文字を末尾に移動する操作を左シフト,末尾の文字を先頭に移動する操作を右シフトと呼ぶ。 英小文字からなる空でない文字列Sが与えられる。 Sに対し左シフトと右シフトをそれぞれ好きな回数(0回でもよい)行って得られ…

AtCoder Beginner Contest 223 A - Exact Price

問題の要約 財布の中に100円硬貨が1枚以上入っており,それ以外には何も入っていない。 財布の中の合計金額がX円である可能性はあるか?制約 0<=X<=1000入力 X考え方 1,Xが100の倍数であるかどうかで条件分岐する。ただし,問題文からXが0のときは例外とする。#…

AtCoder Beginner Contest 224 C - Triangle?

問題の要約 xy平面上に1からNまでの番号の付いたN個の点がある。 点iは(Xi,Yi)にあり,相異なる2点は異なる位置に存在する。 このN点から3点を選ぶとき,選ばれた3点を線分で結んだ図形が正の面積を持つ三角形になるような点の選び方の総数を求めよ。制約 入力…

AtCoder Beginner Contest 224 B - Mongeness

問題の要約 縦H行,横W列のマス目があり,各マスには1つの整数が書かれている。 上からi行目,左からj列目のマスに書かれている整数はAi,j。 マス目が下記の条件を満たすか判定しろ。 1<=i1<i2<=Hおよび1<=j1<j2<=Wを満たすすべての整数の組(i1,i2,j1,j2)について,Ai1,j1+Ai2,j2 <= Ai2,j1+Ai1,j2が成り立つ。制約 2<=H,W<=50 1<=Ai,j<=10^9考え方 1,i1,i2,j1,j2を1ずらす。 1<=i1<i2<=H,1<=j1<j2<=W => 0<=i1</i2<=hおよび1<=j1<j2<=wを満たすすべての整数の組(i1,i2,j1,j2)について,ai1,j1+ai2,j2>

AtCoder Beginner Contest 224 A - Tires

問題の要約 末尾がerまたはistであるような文字列Sが与えられる。 Sの末尾がerである場合はerを,istである場合はistを出力しろ。制約 2<=|S|<=20 Sは英小文字のみからなる。 Sの末尾はerまたはistである。入力 S考え方 1,erとistで条件分岐を考える。 制約か…