Official
A - 図鑑コンプリート / Encyclopedia Completion Editorial
by
A - 図鑑コンプリート / Encyclopedia Completion Editorial
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 入門用コンテンツです。
まず、撮影した花の番号を バケットソート します。
その後、ある種類の花を撮影していれば種類数に \(1\) 加算、種類番号の総和にその花の種類番号を加算すればよいです。
一連の流れは for 文や if 文の組み合わせなどの方法で実装できます。
時間計算量は \(O(N+\max S)\) ( \(\max S\) は花の番号の最大値 ) です。
実装例 (C++):
#include<bits/stdc++.h>
using namespace std;
int main(){
int N;
cin >> N;
vector<int> bk(101,0);
for(int i=0;i<N;i++){
int S;
cin >> S;
bk[S]=1;
}
int r1=0,r2=0;
for(int i=1;i<=100;i++){
if(bk[i]){
r1++; r2+=i;
}
}
cout << r1 << " " << r2 << "\n";
return 0;
}
