Travel

AtCoder
IDabc183_c
Time2000ms
Memory256MB
Difficulty
There are $N$ cities. The time it takes to travel from City $i$ to City $j$ is $T_{i, j}$. Among those paths that start at City $1$, visit all other cities exactly once, and then go back to City $1$, how many paths take the total time of exactly $K$ to travel along? ## Constraints * $2\leq N \leq 8$ * If $i\neq j$, $1\leq T_{i,j} \leq 10^8$. * $T_{i,i}=0$ * $T_{i,j}=T_{j,i}$ * $1\leq K \leq 10^9$ * All values in input are integers. ## Input Input is given from Standard Input in the following format: $N$ $K$ $T_{1,1}$ $\ldots$ $T_{1,N}$ $\vdots$ $T_{N,1}$ $\ldots$ $T_{N,N}$ [samples]
Samples
Input #1
4 330
0 1 10 100
1 0 20 200
10 20 0 300
100 200 300 0
Output #1
2

There are six paths that start at City $1$, visit all other cities exactly once, and then go back to City $1$:

*   $1\to 2\to 3\to 4\to 1$
*   $1\to 2\to 4\to 3\to 1$
*   $1\to 3\to 2\to 4\to 1$
*   $1\to 3\to 4\to 2\to 1$
*   $1\to 4\to 2\to 3\to 1$
*   $1\to 4\to 3\to 2\to 1$

The times it takes to travel along these paths are $421$, $511$, $330$, $511$, $330$, and $421$, respectively, among which two are exactly $330$.
Input #2
5 5
0 1 1 1 1
1 0 1 1 1
1 1 0 1 1
1 1 1 0 1
1 1 1 1 0
Output #2
24

In whatever order we visit the cities, it will take the total time of $5$ to travel.
API Response (JSON)
{
  "problem": {
    "name": "Travel",
    "description": {
      "content": "There are $N$ cities. The time it takes to travel from City $i$ to City $j$ is $T_{i, j}$. Among those paths that start at City $1$, visit all other cities exactly once, and then go back to City $1$, ",
      "description_type": "Markdown"
    },
    "platform": "AtCoder",
    "limit": {
      "time_limit": 2000,
      "memory_limit": 262144
    },
    "difficulty": "None",
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "abc183_c"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "There are $N$ cities. The time it takes to travel from City $i$ to City $j$ is $T_{i, j}$.\nAmong those paths that start at City $1$, visit all other cities exactly once, and then go back to City $1$, ...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments