Submission #1612510
Source Code Expand
#include <bits/stdc++.h> #define REP(i,a,b) for(int i=(a);i<(b);i++) #define RREP(i,a,b) for(int i=(a);i>=(b);i--) typedef long long ll; typedef long double ld; using namespace std; const int INF=1e9, MOD=1e9+7; const int MAX_N=10000; int n,k; bool used[10]={}; string w,s[10]; set<string> st; int dfs(int i, int d){ if(used[i]) return 0; if(d==k){st.insert(w); return 0;} used[i]=true; REP(i,0,n){ int a=s[i].size(); w+=s[i]; dfs(i,d+1); REP(j,0,a) w.pop_back(); } used[i]=false; return 0; } int main(){ cin >> n >> k; REP(i,0,n) cin >> s[i]; REP(i,0,n){ w=s[i]; dfs(i,1); } cout << st.size() << endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | D - カード並べ |
User | ecasdqina |
Language | C++14 (GCC 5.4.1) |
Score | 100 |
Code Size | 691 Byte |
Status | AC |
Exec Time | 3 ms |
Memory | 512 KB |
Judge Result
Set Name | set01 | set02 | set03 | set04 | set05 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 20 / 20 | 20 / 20 | 20 / 20 | 20 / 20 | 20 / 20 | ||||||||||
Status |
|
|
|
|
|
Set Name | Test Cases |
---|---|
set01 | data1 |
set02 | data2 |
set03 | data3 |
set04 | data4 |
set05 | data5 |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
data1 | AC | 1 ms | 256 KB |
data2 | AC | 1 ms | 256 KB |
data3 | AC | 3 ms | 384 KB |
data4 | AC | 3 ms | 384 KB |
data5 | AC | 3 ms | 512 KB |