AtCoder Beginner Contest #010 B - 花占い
問題
与えられる数列にそれぞれ花びらの枚数が書かれている。以下2つの方法で花占いが行われて、どちらの方法でも結果が『嫌い』にならないように事前に毟る最小の花びらの枚数を返せ
1『好き』『嫌い』『好き』『嫌い』・・・
2『好き』『嫌い』『大好き』『好き』『嫌い』『大好き』・・・
解法
与えられる花びらの枚数は高々9枚までなので単純に場合分けした。コード
#include <map> #include <set> #include <list> #include <cmath> #include <queue> #include <stack> #include <cstdio> #include <string> #include <vector> #include <complex> #include <cstdlib> #include <cstring> #include <numeric> #include <sstream> #include <iostream> #include <algorithm> #include <functional> #define mp make_pair #define pb push_back #define all(x) (x).begin(),(x).end() #define rep(i,n) for(int i=0;i<(n);i++) using namespace std; typedef long long ll; typedef unsigned long long ull; typedef vector<bool> vb; typedef vector<int> vi; typedef vector<vb> vvb; typedef vector<vi> vvi; typedef pair<int,int> pii; const int INF=1<<29; const double EPS=1e-9; const int dx[]={1,0,-1,0},dy[]={0,-1,0,1}; int n; int main(){ cin>>n; vector<int > data; int sum = 0; for(int i = 0;i < n;i++){ int x; cin>>x; if(x == 1 || x == 3 || x == 7 || x == 9)continue; else if (x == 5){ sum +=2; }else if(x ==6){ sum +=3; }else{ sum +=1; } } cout <<sum<<endl; return 0; }