Advertisement
Guest User

Untitled

a guest
Mar 31st, 2020
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.88 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. int n,m;
  6.  
  7. int dp[100];
  8. int x[100], y[100];
  9. int res[100];
  10. int br;
  11.  
  12. void resi(){
  13.     dp[0] = 0;
  14.     for(int i=1; i<=n; i++)dp[i] = 1e9;
  15.     for(int i=1; i<=n; i++){
  16.         for(int j=0; j<m; j++){
  17.             if(y[j] == i)dp[i] = min(dp[x[j]] + 1, dp[i]);
  18.         }
  19.     }
  20.     cout << dp[n] << "\n";
  21.     int tr = n;
  22.     while(tr > 0){
  23.         int koji = 0;
  24.         for(int j=0; j<m; j++){
  25.             if(y[j] == tr && (dp[tr] == (dp[x[j]] + 1)) ){
  26.                 tr = x[j];
  27.                 koji = j;
  28.                 break;
  29.             }
  30.         }
  31.         res[br++] = koji;
  32.     }
  33.     for(int i=br-1; i>=0; i--)cout << res[i] << endl;
  34. }
  35.  
  36.  
  37.  
  38.  
  39. int main()
  40. {
  41.     cin >> n >> m;
  42.     for(int i=0; i<m; i++){
  43.         cin >> x[i] >> y[i];
  44.     }
  45.     resi();
  46.     return 0;
  47. }
  48. /*
  49. 5 6
  50. 0 3
  51. 0 1
  52. 1 2
  53. 2 4
  54. 3 4
  55. 4 5
  56. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement