公式
B - Nineball 解説
by
B - Nineball 解説
by
physics0523
印刷ページ
原案: physics0523
バケットソート を利用すると簡単です。
バケットソートとは、 \(bk[x] = \{\) \(x\) が何個あるか \(\}\) という情報を作成することによってソートできたとみなすソートです。
これは、 \(A\) の各要素について \(bk[A_i]\) に \(1\) 加算するというような処理の繰り返しで実現可能です。
\(9\) 番のボールが残っているかどうかは \(bk[9]\) が \(0\) かどうかで判断できます。
残っているボールの番号の最小値を求めるためには、 \(i=1,2,\dots,9\) について順に \(bk[i]\) が \(1\) かどうか調べ、 \(bk[i]=1\) なる最小の \(i\) が求めるものであるとすればよいです。
一連の流れは、 if 文や for ループの組み合わせなどで実現可能です。
実装例 (C++):
#include<bits/stdc++.h>
using namespace std;
int main(){
int K;
cin >> K;
vector<int> bk(10,0);
for(int i=0;i<K;i++){
int A;
cin >> A;
bk[A]=1;
}
if(bk[9]==0){cout << "-1\n"; return 0;}
for(int i=1;i<=9;i++){
if(bk[i]==1){
cout << i << "\n";
return 0;
}
}
return 0;
}
投稿日時:
最終更新:
