Official

A - コンサートチケットの予約 / Concert Ticket Reservation Editorial by kyopro_friends


初心者の方へ


問題文の指示通り、予約処理を順にシミュレーションします。各エリアについて「予約済み人数」ではなく「残りの座席数」を管理した方が直感的でしょう。

多くのプログラミング言語では、配列・リストの添字は \(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: