Advertisement
PedalaVasile

Probleme

Jan 17th, 2019
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.58 KB | None | 0 0
  1. ///pr1
  2.  
  3. #include<fstream>
  4. using namespace std;
  5. ifstream cin("dfs.in");
  6. ofstream cout("dfs.out");
  7.  
  8. void DFS(int k);
  9. int a[105][105];
  10. int v[105];
  11. int n;
  12. int main()
  13. {
  14.     int i,j,k,m,n0,x,y;
  15.     cin>>n>>m>>n0;
  16.     for(i=1;i<=m;i++)
  17.     {
  18.         cin>>x>>y;
  19.         a[x][y]=1;
  20.         a[y][x]=1;
  21.     }
  22.     DFS(n0);
  23.  
  24.     cin.close();
  25.     cout.close();
  26.     return 0;
  27. }
  28.  
  29. void DFS(int k)
  30. {
  31.     int i;
  32.     v[k]=1;
  33.     cout<<k<<" ";
  34.     for(i=1;i<=n;i++)
  35.     {
  36.         if(a[k][i]==1 && v[i]==0)
  37.         {
  38.             DFS(i);
  39.         }
  40.     }
  41. }
  42.  
  43. ///
  44. ///pr2
  45. //
  46.  
  47. #include<fstream>
  48.  
  49. using namespace std;
  50.  
  51. ifstream cin("soarece.in");
  52. ofstream cout("soarece.out");
  53.  
  54. void Back(int i,int j,int k);
  55.  
  56. int di[]={-1,0,1,0};
  57. int dj[]={0,1,0,-1};
  58. int a[105][105];
  59. int n,m,nrp;
  60. int i_start,j_start;
  61. int i_stop,j_stop;
  62. int next_i,next_j;
  63.  
  64. int main()
  65. {
  66.     int i,j;
  67.     cin>>n>>m;
  68.     for(i=1; i<=n; i++)
  69.     {
  70.         for(j=1; j<=m; j++)
  71.         {
  72.             cin>>a[i][j];
  73.         }
  74.     }
  75.  
  76.     for(j=0; j<=m+1; j++)
  77.     {
  78.         a[0][j]=a[n+1][j]=1;
  79.     }
  80.     for(i=0; i<=n+1; i++)
  81.     {
  82.         a[i][0]=a[i][m+1]=1;
  83.     }
  84.  
  85.     cin>>i_start>>j_start;
  86.     cin>>i_stop>>j_stop;
  87.  
  88.     Back(i_start,j_start,1);
  89.  
  90.     cout<<nrp;
  91.  
  92.     cin.close();
  93.     cout.close();
  94.  
  95.     return 0;
  96. }
  97.  
  98. void Back(int i,int j,int k)
  99. {
  100.     a[i][j]=k;
  101.     if(i==i_stop && j==j_stop)
  102.     {
  103.         nrp++;
  104.     }
  105.     else
  106.     {
  107.         for(k=0; k<4; k++)
  108.         {
  109.             next_i=i+di[k];
  110.             next_j=j+dj[k];
  111.             if(a[next_i][next_j]==0)
  112.             {
  113.                 Back(next_i,next_j,k+1);
  114.             }
  115.         }
  116.     }
  117.     a[i][j]=0;
  118. }
  119.  
  120.  
  121. ///
  122. ///pr3
  123. ///
  124.  
  125. #include<fstream>
  126.  
  127. using namespace std;
  128.  
  129. ifstream cin("traseucal.in");
  130. ofstream cout("traseucal.out");
  131.  
  132. void Back(int i,int j,int k);
  133. int posibil();
  134. void matrice();
  135.  
  136. int di[]={-2,-2,-1,+1,+2,+2,+1,-1};
  137. int dj[]={-1,+1,+2,+2,+1,-1,-2,-2};
  138. int a[105][105];
  139. int s[105][105];
  140. int n,m,nr;
  141. int i_start,j_start;
  142. int i_stop,j_stop;
  143. int next_i,next_j;
  144.  
  145. int main()
  146. {
  147.     int i,j;
  148.     cin>>n>>m;
  149.     for(i=1;i<=n;i++)
  150.     {
  151.         for(j=1;j<=m;j++)
  152.         {
  153.             cin>>a[i][j];
  154.         }
  155.     }
  156.  
  157.     i_start=j_start=1;
  158.     i_stop=n; j_stop=m;
  159.  
  160.     Back(i_start,j_start,1);
  161.  
  162.     cin.close();
  163.     cout.close();
  164.  
  165.     return 0;
  166. }
  167.  
  168. void Back(int i,int j,int k)
  169. {
  170.     a[i][j]=k;
  171.     s[i][j]=a[i][j];
  172.     if(i==i_stop && j==j_stop && nr==0)
  173.     {
  174.         matrice();
  175.         nr++;
  176.     }
  177.     else
  178.     {
  179.         for(int c=0;c<8;c++)
  180.         {
  181.             next_i=i+di[c];
  182.             next_j=j+dj[c];
  183.             if(posibil()==1)
  184.             {
  185.                 Back(next_i,next_j,k+1);
  186.             }
  187.         }
  188.     }
  189.     a[i][j]=0;
  190. }
  191.  
  192. int posibil()
  193. {
  194.     if((1<=next_i&&next_i<=n)&&(1<=next_j&&next_j<=m)&&a[next_i][next_j]==0)
  195.         return 1;
  196.     else
  197.         return 0;
  198. }
  199.  
  200. void matrice()
  201. {
  202.     int i,j;
  203.     for(i=1;i<=n;i++)
  204.     {
  205.         for(j=1;j<=m;j++)
  206.         {
  207.             cout<<s[i][j]<<" ";
  208.         }
  209.         cout<<endl;
  210.     }
  211. }
  212.  
  213.  
  214. ///
  215. ///pr4
  216. ///
  217.  
  218. #include<fstream>
  219.  
  220. using namespace std;
  221.  
  222. ifstream cin("traseucalmax.in");
  223.  
  224. void Back(int i,int j,int k);
  225. int posibil();
  226. void matrice();
  227.  
  228. int di[]={-2,-2,-1,+1,+2,+2,+1,-1};
  229. int dj[]={-1,+1,+2,+2,+1,-1,-2,-2};
  230. int a[105][105];
  231. int s[105][105];
  232. int n,m,nr[105];
  233. int i_start,j_start;
  234. int i_stop,j_stop;
  235. int next_i,next_j;
  236. int maxim=INT_MIN;
  237.  
  238. int main()
  239. {
  240.     int i,j;
  241.     cin>>n>>m;
  242.     for(i=1;i<=n;i++)
  243.     {
  244.         for(j=1;j<=m;j++)
  245.         {
  246.             cin>>a[i][j];
  247.         }
  248.     }
  249.  
  250.     i_start=j_start=1;
  251.     i_stop=n; j_stop=m;
  252.  
  253.     Back(i_start,j_start,1);
  254.  
  255.     cin.close();
  256.  
  257.     return 0;
  258. }
  259.  
  260. void Back(int i,int j,int k)
  261. {
  262.     a[i][j]=k;
  263.     s[i][j]=a[i][j];
  264.     if(i==i_stop && j==j_stop)
  265.     {
  266.         if(k>maxim)
  267.         {
  268.             maxim=k;
  269.             matrice();
  270.         }
  271.     }
  272.     else
  273.     {
  274.         for(int c=0;c<8;c++)
  275.         {
  276.             next_i=i+di[c];
  277.             next_j=j+dj[c];
  278.             if(posibil()==1)
  279.             {
  280.                 Back(next_i,next_j,k+1);
  281.             }
  282.         }
  283.     }
  284.     a[i][j]=0;
  285.     s[i][j]=0;
  286. }
  287.  
  288. int posibil()
  289. {
  290.     if((1<=next_i&&next_i<=n)&&(1<=next_j&&next_j<=m)&&a[next_i][next_j]==0)
  291.         return 1;
  292.     else
  293.         return 0;
  294. }
  295.  
  296. void matrice()
  297. {
  298.     ofstream cout("traseucalmax.out");
  299.  
  300.     int i,j;
  301.     for(i=1;i<=n;i++)
  302.     {
  303.         for(j=1;j<=m;j++)
  304.         {
  305.             cout<<s[i][j]<<" ";
  306.         }
  307.         cout<<endl;
  308.     }
  309.  
  310.     cout.close();
  311. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement