公式

A - 窓口の受付処理 / Reception Processing at the Service Window 解説 by physics0523


初心者の方へ


各窓口が今日あと何件を受け付けられるかが数列 \(C\) という形で与えられるので、これをそのまま配列として受け取って利用するのが良い方針です。

各受付ごとに、以下を繰り返します。

  • 窓口 \(T_i\) について、 \(C_{T_i}>0\) ならその申請を受け付け、 \(C_{T_i}\) から \(1\) 減算する。
  • \(C_{T_i} = 0\) ならその申請を却下する。

これは、 for ループや if 文などの組み合わせで実現可能です。

実装例 (C++):

#include<bits/stdc++.h>

using namespace std;

int main(){
  int n,m;
  cin >> n >> m;
  vector<int> c(n+1);
  for(int i=1;i<=n;i++){ cin >> c[i]; }

  int res=0;
  while(m--){
    int t;
    cin >> t;
    if(c[t]>0){
      c[t]--;
      res++;
    }
  }
  cout << res << "\n";
  return 0;
}

投稿日時:
最終更新: