公式
A - 窓口の受付処理 / Reception Processing at the Service Window 解説
by
A - 窓口の受付処理 / Reception Processing at the Service Window 解説
by
physics0523
初心者の方へ
- 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 入門用コンテンツです。
各窓口が今日あと何件を受け付けられるかが数列 \(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;
}
投稿日時:
最終更新:
