1 solutions
-
0
Pascal :
var n, i, j, min : longint; a : array[1..17,1..17] of longint; b : array[1..17] of boolean; procedure dfs(x, sum : longint); var i : longint; begin if sum >= min then exit; if x > n then begin if sum < min then min := sum; exit; end; for i := 1 to n do if b[i] then begin b[i] := false; dfs(x+1, sum+a[x,i]); b[i] := true; end; end; begin readln(n); for i := 1 to n do begin for j := 1 to n do begin read(a[i,j]); a[i,j] := 1000 - a[i,j]; end; readln; end; min := maxlongint; fillchar(b, sizeof(b), true); dfs(1, 0); writeln(n*1000-min); end.
- 1
Information
- ID
- 16688
- Time
- 1000ms
- Memory
- 128MiB
- Difficulty
- (None)
- Tags
- # Submissions
- 0
- Accepted
- 0
- Uploaded By