Official
A - コンサートチケットの予約 / Concert Ticket Reservation Editorial
by
A - コンサートチケットの予約 / Concert Ticket Reservation Editorial
by
kyopro_friends
初心者の方へ
- AtCoder をはじめたばかりで何をしたらよいか分からない方は、まずは practice contest の問題A「Welcome to AtCoder」を解いてみてください。基本的な入出力の方法が載っています。
- また、プログラミングコンテストの問題に慣れていない方は、AtCoder Beginners Selection の問題をいくつか解いてみることをおすすめします。
- C++入門 AtCoder Programming Guide for beginners (APG4b) は、競技プログラミングのための C++ 入門用コンテンツです。
- Python入門 AtCoder Programming Guide for beginners (APG4bPython) は、競技プログラミングのための Python 入門用コンテンツです。
問題文の指示通り、予約処理を順にシミュレーションします。各エリアについて「予約済み人数」ではなく「残りの座席数」を管理した方が直感的でしょう。
多くのプログラミング言語では、配列・リストの添字は \(0\) から始まることに注意してください。
実装例 (C++)
#include<bits/stdc++.h>
using namespace std;
int main(){
int n, m;
cin >> n >> m;
vector<int>c(n), k(n);
for(int i=0; i<n; i++) cin >> c[i] >> k[i];
int ans = 0;
for(int i=0; i<m; i++){
int p;
cin >> p;
p--;
if(k[p] > 0){
ans += c[p];
k[p]--;
}
}
cout << ans << endl;
}
実装例 (Python)
N, M = map(int, input().split())
C = []
K = []
for _ in range(N):
c, k = map(int, input().split())
C.append(c)
K.append(k)
ans = 0
for _ in range(M):
p = int(input())
p -= 1
if K[p] > 0:
ans += C[p]
K[p] -= 1
print(ans)
posted:
last update:
