Yuulis.log

トンネルを抜けるとそこは参照エラーであった。

【AtCoder】ABC 378 A - Pairing | 茶コーダーが解くAtCoder

atcoder.jp

実行時間制限: 2 sec / メモリ制限: 1024 MB / Difficulty: 22

問題概要

4個のボールがあり、  i 個目のボールの色は  A_i です。同じ色のボールを2つ選び両方捨てるという操作を最大何回行えるか求めてください。

制約

 A_1, A_2, A_3, A_4 はそれぞれ整数で、  1 以上  4 以下。

考察

 c のボールの個数を  x_c とすると、  \displaystyle \sum_c \left\lfloor \frac{x_c}{2} \right\rfloor が答えとなる。

 x_c の管理には、keyを色  cvalue x_c としたmapを使った。もちろんvectorで処理してもよい。

コード

#include <bits/stdc++.h>
using namespace std;

// ======================================== //

int main()
{
    int A1, A2, A3, A4;
    cin >> A1 >> A2 >> A3 >> A4;

    map<int, int> mp;
    mp[A1]++;
    mp[A2]++;
    mp[A3]++;
    mp[A4]++;

    int ans = 0;
    for (auto &&m : mp)
    {
        if (m.second > 1)
            ans += m.second / 2;
    }

    cout << ans << endl;
}

atcoder.jp

実装時間: 5分