I am given with a certain table

Stores

```
[A][B][C]

```

Products

```
[P1][P2][P3][P4]

```

And their prices are listed as below

```
[  ][A][B][C]
[P1][6][4][2]
[P2][3][5][7]
[P3][1][9][9]
[P4][8][4][9]

```

Assume the user want to buy all of the things in 2 stores as cheap as possible, is there only efficient algorithm for that?

Is this the Travelling Purchaser Problem?