형님들 진짜 한번만 도와 주십시오 진짜 도저히 진짜 모르겠어서 질문드립니다 코드 돌리면 list iterator not incrementable 오류 뜨는데 

진짜 도저히 모르겠습니다 정말 외판원 문제 3-opt 사용해서 푸는건데 진짜 제발 이코드 뭐가 문제인지 한번만 도와주세요 제발 ㅜㅠㅠㅠ

#include<iostream>

#include<list>

#include<vector>

#include<iterator>

using namespace std;

int main() {

vector<vector<int>> v = { {-1,27,42,16,30,26,3,93,13,33,9}, {7,-1,16,1,30,30,4,77,42,21,16},{20,13,-1,25,5,0,45,17,36,16,28}, {21,16,25,-1,18,18,39,90,80,56,7},

 {12,46,27,48,-1,5,28,46,88,33,25}, {23,5,5,9,5,-1,3,88,18,46,92}, {10,15,20,15,35,8,-1,10,15,20,30}, {18,25,11,15,31,17,21,-1,40,45,35},

 {13,18,50,17,25,16,26,40,-1,31,35}, {21,16,30,51,45,30,35,20,25,-1,30}, {10,20,15,25,30,35,21,19,15,25,-1}};

list<int> origin = { 1,2,3,4,5,6,7,8,9,10,0,1};

list<int>::iterator i, j, k, i_end, j_end, k_end;

list<int>::iterator ii, jj, kk;

k_end = origin.end();

advance(k_end, -1);

j_end = origin.end();

advance(j_end, -2);

i_end = origin.end();

advance(i_end, -3);

A:for (i=origin.begin(); i != i_end; i++) {

ii = i;

ii++;

for (j = ii; j != j_end; j++) {

jj = j;

jj++;

for (k = jj; k != k_end; k++) {

kk = k;

kk++;

int old_cost = 0;

int new_cost = 0;

old_cost = v[*i][*ii] + v[*j][*jj] + v[*k][*kk];

new_cost = v[*i][*jj] + v[*j][*kk] + v[*k][*ii];

if (new_cost < old_cost) {

origin.splice(kk, origin, ii, jj);

goto A;

}

}

}

}

}