2012-03-09 3 views
-8

왜이 코드가 분할 오류인지 이해할 수 없습니다. 밖에 도움이 필요 하신가요? 이것은 책에있는 수수께끼를위한 것이지 숙제를위한 것이 아닙니다.왜이 코드가 Seg_Faulting입니까?

코드 : http://pastebin.com/WvWkckzX

입력 : http://pastebin.com/yvHXquuf

프롬프트 : http://pastebin.com/dmmyG2DY

입력 : 첫 번째 줄은 T. T 테스트 케이스에 따라 테스트 케이스의 수를 포함합니다. 각 테스트 케이스의 첫 번째 줄에는 N과 M이 있습니다. 다음 N 줄은 Byteland의 도시를 나타냅니다. i 번째 행에는 도시 i에있는 육군 본부를 나타내는 문자 'A'또는 'B'와 그 군대를 격파하는 비용 ci가 포함됩니다. 다음 M 줄은 도시의 도로를 나타냅니다. i 번째 줄에는 xi와 yi (도로로 연결된 도시 수)가 있습니다.

출력 : 출력 T 라인, 목표를 달성하는 데 가장 저렴한 비용이 포함 된 테스트 케이스 1 개.

시료 입력 :

1 
3 3 
A 1 
A 1 
B 10 
1 2 
1 3 
2 3 

샘플 출력 :

2 

도시 한 (A-1) 도시 미터 (A-1) 및 도시 (3) (B-10)에 연결된다. 단순히 도시 하나를 공격하고 2 만 2

GDB는 그것이 내가 당신이 있기 때문에 있다고 확신 'cost_testCase'

+5

훨씬 짧은 테스트 케이스 (10-15 줄 이상)를 만든 다음 질문을 직접 수정하여 포함하십시오. –

+0

이 TSP입니까? –

+1

디버거에서 프로그램을 실행할 때 무엇을 배웠습니까? seg 오류가 발생한 줄을 실행하는 동안? –

답변

1

에 결함에 세그먼트 하더군요 비용에있는 동안, (10) 비용 도시 3를 공격하려면 그의 최대 당신이 cities이를 얻을 것을 볼 수 있습니다 라인 127에 중단 점을 설정하고 i, j, locations.size()cities.size()의 표시를 수행하고 코드를 계속 유지하는 경우 cities.size()

에 의해 제한된다 i에 의해 색인 위치 크기가 4 인 경우 locations은 3이고 색인이인 경우에 3을 입력하면 범위를 벗어나기 때문에 오류가 발생하는 곳이 확실합니다. 나는 정말로 이것과 함께 놀 시간이별로 없었지만 그것이 그 것처럼 보입니다.

+0

그건 정말 실망 스럽네 ... 고마워! 그것은 지금 완벽하게 작동합니다! –

관련 문제