Tu tentes d'accéder au premier élément d'un vecteur vide:

vector<vector<int>> tranches_max(vector<vector<int>> x)
{
vector<vector<int>> y;
y[0].swap(x[0]); il n'y a pas de y[0] ici.
return...