html練習
list
- First Item
- Second Item
- Third Item
- Item One
- Item Two
- nested list
- also
- woah I'm really nested!
Group One
I want to be together in group one
AtCoderのコンテスト
AtCoderのコンテスト出たので結果
A問題
問題文
あなたは、X 円を持ってケーキとドーナツを買いに出かけました。
あなたはまずケーキ屋で 1 個 A 円のケーキを 1 個買いました。 次に、
ドーナツ屋で 1 個 B 円のドーナツをできるだけたくさん買いました。
これらの買い物のあと手元に残っている金額は何円ですか。制約
1≤A,B≤1,000
A+B≤X≤10,000
X,A,B は整数である入力
入力は以下の形式で標準入力から与えられる。
X
A
B出力
買い物のあとに残った金額を出力せよ。
自分の解答
x = int(input()) #入力読み込み a = int(input()) b = int(input()) d = (x-a) // b #(x - a)をbで割って余り切り捨て print((x-a)-b*d)
感想
A問題は簡単
B問題
問題文
あなたは、500 円玉を A 枚、100 円玉を B 枚、50 円玉を C 枚持っています。
これらの硬貨の中から何枚かを選び、合計金額をちょうど X 円にする方法は
何通りありますか。同じ種類の硬貨どうしは区別できません。2 通りの硬貨
の選び方は、ある種類の硬貨についてその硬貨を選ぶ枚数が異なるとき区別
されます。制約
0≤A,B,C≤50
A+B+C≥1
50≤X≤20,000
A,B,C は整数である
X は 50 の倍数である入力
入力は以下の形式で標準入力から与えられる。
A
B
C
X出力
硬貨を選ぶ方法の個数を出力せよ。
自分の解答
a = int(input()) #入力読み込み b = int(input()) c = int(input()) x = int(input()) count = 0 for i in range(a+1): #a,b,cについてx - 500a -100b -50cになる組み合わせを探す for j in range(b+1): for k in range(c+1): if (x - i * 500 - j * 100 - k * 50) == 0: count += 1 print(count)
感想
0<= A,B,C<=50なのでA,B,C全部についてループ回せばよいのだが
気が付かず時間ロス。
ミスった
C問題
問題文
2×N のマス目があります。上から i 行目、左から j 列目 (1≤i≤2, 1≤j≤N) のマ
スをマス (i,j) と表すことにします。あなたははじめ、左上のマス (1,1) にいま
す。 あなたは、右方向または下方向への移動を繰り返し、右下のマス (2,N)
に移動しようとしています。マス (i,j) には Ai,j 個のアメが置かれています。
あなたは移動中に通ったマスに置いてあるアメをすべて回収します。 左上
および右下のマスにもアメが置かれており、あなたはこれらのマスに置かれ
ているアメも回収します。移動方法をうまく選んだとき、最大で何個のアメ
を回収できるでしょうか。制約
1≤N≤100
1≤Ai,j≤100 (1≤i≤2, 1≤j≤N入力
入力は以下の形式で標準入力から与えられる。
N
A1,1 A1,2 … A1,N
A2,1 A2,2 … A2,N出力
回収できるアメの個数の最大値を出力せよ。
自分の解答
n = int(input()) A1 = [int(i) for i in input().split()] #1行目読み込み A2 = [int(i) for i in input().split()] #2行目読み込み sums = [] for i in range(n): sums.append(sum(A1[0:i+1]) + sum(A2[i:n+1])) #ルートを全部探索 print(max(sums)) #スコアの最大値を出力
感想
C問題にしては簡単なほうだった
D問題はいつも通り解けなかった。早く解けるようになりたい。
毎週日曜日夜九時から開催中。