Advertisement
pdaogu

TAXI

Jun 9th, 2019
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.17 KB | None | 0 0
  1. #include <stdio.h>
  2. #define maxn 25
  3. #define MODULO 1000000007
  4.  
  5. int n;
  6. int m;
  7. int a[maxn][maxn];
  8. bool f[maxn];           // da danh dau?
  9. int minq = 1000000000;
  10. int q;
  11. int sol[maxn];              // nghiem
  12.  
  13. void input () {
  14.     scanf("%d", &n);
  15.     m = n;
  16.     n /= 2;
  17.     for (int i = 0; i <= m; ++i) {
  18.         for (int j = 0; j <= m; ++j) {
  19.             scanf("%d", &a[i][j]);
  20.         }
  21.         sol[i] = 0;
  22.         f[i] = false;
  23.     }
  24.     f[0] = true;
  25.     q = 0;
  26. }
  27.  
  28. void output () {
  29.     printf("%d", minq);
  30. }
  31.  
  32.  
  33. bool check (int i, int k) {
  34.     if (f[i])           // da danh dau
  35.         return false;
  36.     if (q >= minq)      // quang duong hien tai da >= gia tri nho nhat
  37.         return false;
  38.     if (i >= n && f[i-n] == false)
  39.         return false;
  40.     return true;
  41. }
  42.  
  43. void attempt (int k) {
  44.     for (int i = 1; i <= m; ++i) {
  45.         if (check(i, k)) {          // thoa man chua danh dau va quang duong < q
  46.             f[i] = true;
  47.             sol[k] = i;
  48.             q += a[sol[k-1]][sol[k]];
  49.             if (k == m) {
  50.                 q += a[i][0];
  51.                 if (q < minq) {
  52.                     minq = q;
  53.                     // output();
  54.                 }
  55.                 q -= a[i][0];
  56.             } else {
  57.                 attempt(k+1);
  58.             }
  59.             f[i] = false;
  60.             q -= a[sol[k-1]][sol[k]];
  61.         }
  62.     }
  63. }
  64.  
  65. void solve () {
  66.     attempt(1);
  67. }
  68.  
  69. int main () {
  70.     input();
  71.     solve();
  72.     output();
  73.     return 0;
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement