옷의 종류 / 각 종류에 해당하는 개수가 중요하다.
예를 들어 옷의 종류가 2가지이고 각각 2개 1개를 가지고 있다면, 만들수있는 조합의 수는 아무것도 안입는 수를 각각 포함해서 (2+1) * (1+1) = 6 이된다. 여기서 아무것도 안입는 경우의 수 1을 뺀다.
즉 (각 종류의 개수 + 1)의 모든합 - 1이 답이된다.
#include <iostream>
#include <map>
#include <string>
using namespace std;
int main() {
int C;
cin >> C;
while (C--) {
int N;
cin >> N;
map <string, int> mp;
while (N--) {
string a, b;
cin >> a >> b;
mp[b]++;
}
int res = 1;
for (auto i : mp)
res *= (i.second + 1);
cout << res - 1 << "\n";
}
}