[9375]ファッション王新海彬

2308 ワード

9375号

🔍 問題の説明


ヘビンはファッションに敏感で、かつて着た服を再組み合わせたことがない.
例えば、今日海彬が眼鏡、コート、上着、靴を履いていたら、
翌日はメガネの代わりにズボンやコンタクトレンズを追加します.
海彬が服を手に入れたとき、海彬は裸で何日も外をぶらぶらしていたのではないでしょうか.

入力

첫째 줄에 테스트 케이스가 주어진다. 테스트 케이스는 최대 100이다.
* 각 테스트 케이스의 첫째 줄에는 해빈이가 가진 의상의 수 n(0 ≤ n ≤ 30)이 주어진다.
* 다음 n개에는 해빈이가 가진 의상의 이름과 의상의 종류가 공백으로 구분되어 주어진다. 같은 종류의 의상은 하나만 입을 수 있다.
모든 문자열은 1이상 20이하의 알파벳 소문자로 이루어져있으며 같은 이름을 가진 의상은 존재하지 않는다.

しゅつりょく

각 테스트 케이스에 대해 해빈이가 알몸이 아닌 상태로 의상을 입을 수 있는 경우를 출력하시오.

▼▼▼トラブルシューティング方法

map<string, int> cnt : 의상의 종류별(string) 개수(int)를 구하여 
옷을 조합하는 경우의 수를 구한 뒤 알몸이 아닌 경우를 빼준다.

📃 コード#コード#


[2021.05.12]
#include <iostream>
#include <map>
#include <string>

using namespace std;

int main() {
    int t, n;
    string category, clothes;

    cin >> t;
    while (t--) {
        int answer = 1;
        map<string, int> cnt;
        cin >> n;
        for (int i = 0; i < n; i++) {
            cin >> clothes >> category;
            cnt[category]++;
        }
        for (auto i : cnt) {
            answer *= (i.second + 1);
        }
        cout << answer - 1 << endl;
    }
}