ABC141 C - Attack Survival
問題はこちら atcoder.jp
方針
ナイーブに 人の点数をいちいち引くのでは間に合いません。ラウンドで出た正解数は と分かっているので,各問の正解者に 点ずつ与えて,最後で一律に 点を引いても同じことです。
コード
#include <bits/stdc++.h> using namespace std; int main(){ int n,k,q; cin>>n>>k>>q; vector<int> a(q); for(int i=0; i<q; i++){ cin>>a[i]; } vector<int> correct(n); //正解数 for(int i=0; i<q; i++){ correct[a[i]-1]++; //ここが1ずれることに注意 } for(int i=0; i<n; i++){ cout<<(k-q+correct[i]>0 ? "Yes" : "No")<<endl; } }