Quiz
https://atcoder.jp/contests/joi2010yo/tasks/joi2010yo_d
AC code
https://atcoder.jp/contests/joi2010yo/submissions/10252516
解法
- next_permutationで全ての並び方を考慮し、先頭k個を採用する
- 3200msかかるが、10秒制限なので大丈夫
code抜粋
int main(){ cin.tie(0); ios::sync_with_stdio(false); // input ll N,K;cin>>N>>K; VI A(N); rep(i,N)cin>>A[i]; VI I; rep(i, N) I.push_back(i); set<string> se; do{ // 前のk枚 stringstream ss; rep(i, K){ ll idx = I[i]; ss << A[idx]; } se.insert(ss.str()); }while(next_permutation(ALL(I))); ll ans = se.size(); p(ans); return 0; }