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

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

AtCoder

AtCoder Beginner Contest 237 C - kasaka

問題の要約 英小文字からなる文字列Sが与えられる。Sの先頭にaをいくつか(0個でもよい)付け加えて回文にすることができるか判定せよ。制約 1<=|S|<=10^6入力 S考え方 1,Sにaの挿入と削除をしてaの数を合わせてから、その次に回文を判定したい。 Sの先頭にaを…

AtCoder Beginner Contest 237 B - Matrix Transposition

問題の要約 H行W列の行列Aが与えられる。 Aの上からi行目、左からj列目の要素はAi,j。 Aの転置行列Bを出力しろ。制約 1<=H,W<=10^5 H*W<=10^5 1<=Ai,j<=10^9入力 H W A1,1 ... A1,W ... AH,1 ... AH,W考え方 1,制約のH*W<=10^5より二重のfor文を使ってAからB…

AtCoder Beginner Contest 237 A - Not Overflow

問題の要約 整数Nが与えられる。Nが-2^31以上かる2^31未満ならばYesを、そうでないならばNoを出力しろ制約 -2^63<=N<2^63入力 N考え方 1,intやlong longでbit数を考えるのではなく、doubleで受け取りdoubleで考える。 2,後は単純なif文での条件分岐。実際の…

AtCoder Beginner Contest 236 C - Route Map

問題の要約 鉄道のとある路線にはN個の駅が存在し、始点から終点に向かってi(1<=i<=N)番目の駅の名前はSi。 普通列車は全ての駅に止まるが、急行列車は全ての駅に止まるとは限らない。 急行列車はM(M<=N)個の駅にのみ止まり、j(1<=j<=M)番目に止まる駅の名前…

AtCoder Beginner Contest 236 B - Who is missing?

問題の要約 整数1,2,...,Nが書かれたカードが4枚ずつ、合計4N枚ある。 これらのカードをシャッフルしたのち1枚のカードを選んで抜き取り、残りの4N-1枚を束にして渡された。 渡された束のi(1<=i<=4N-1)枚目のカードには、整数Aiが書かれている。 抜き取られ…

AtCoder Beginner Contest 236 A - chukodai

問題の要約 英小文字からなる文字列Sが与えられる。 Sの先頭からs文字目とb文字目を入れ替えて得られる文字列を出力せよ。制約 2<=|S|<=10 1<=a<b<=|S|入力 S a b考え方 1,C++には値を入れ替えるswap関数があるのでそれを使う。 実際のプログラム#include<iostream>#include<string> using namespace std; int main(){ string S; cin >> S; int a,b; cin >> a >> b; swap(S[a-1],S[b-1])</string></b<=|s|入力>…

AtCoder Beginner Contest 234 D - Prefix K-th Max

問題の要約 (1,2,...,N)の順列P=(P1,P2,...,PN)、および正整数Kが与えられる。 i=K,K+1,...,Nについて、以下を求めよ。 ・Pの先頭i項のうち、K番目に大きい値制約 1<=K<=N<=5*10^5入力 N K P1 P2 ... PN考え方 1,Piの値は(1,2,...,N)の順列なので重複はない…

AtCoder Beginner Contest 234 C - Happy New Year!

問題の要約 10進数で表記したときに0,2のみからなる正整数のうち、K番目に小さいものを求めよ。制約 1<=K<=10^18入力 K考え方 1,簡単な実験(例えば15番目くらいまで書き出してみるなど)で2と0の組み合わせとKの2進数とが対応していることに気づく。 2,入力例…

AtCoder Beginner Contest 234 B - Longest Segment

問題の要約 二次元平面上にN個の点がある。i個目の点の座標は(xi,yi)である。 この中から2個の点を選ぶとき、それらを結ぶ線分の長さの最大値を求めよ。制約 2<=N<=100 -1000<=xi,yi<=1000 (xi,yi)≠(xj,yj)(i≠j)入力 N x1 y1 ... xN yN出力 想定解との絶対誤…

AtCoder Beginner Contest 234 A - Weird Function

問題の要約 関数fをf(x)=x^2+2*x+3と定義する。 整数tが入力されるので、f(f(f(t)+t)+f(f(t)))を求めよ。 ただし、答えは2*10^9以下の整数であることが保証される。制約 0<=t<=10入力 t考え方 1,関数を作り、それにtを代入して答えを出力。実際のプログラム#…

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…