Advertisement
a53

joc11

a53
Aug 29th, 2020
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.60 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4. typedef long long ll;
  5. typedef long double ld;
  6. typedef pair<int,int> pii;
  7. typedef pair<ll,ll> pll;
  8. ifstream fin("joc11.in");
  9. ofstream fout("joc11.out");
  10. int n,m,v[401][901],nodes[901],rezultat,etape,pozitie,rez[401],et[401],poz[401],winner,minim=-1;
  11. bool use[901];
  12. void dfs(int nod)
  13. {
  14. use[nod]=1;
  15. etape++;
  16. if(nodes[nod]==0)
  17. {
  18. rezultat=0;
  19. pozitie=nod;
  20. return;
  21. }
  22. if(nodes[nod]==9999)
  23. {
  24. rezultat=9999;
  25. pozitie=nod;
  26. return;
  27. }
  28. etape+=nodes[nod]%10;
  29. if(use[nodes[nod]/10])
  30. {
  31. rezultat=-1;
  32. pozitie=nod;
  33. return;
  34. }
  35. dfs(nodes[nod]/10);
  36. }
  37. int main()
  38. {
  39. ios_base::sync_with_stdio(false);
  40. cin.tie(0);
  41. cout.tie(0);
  42. fin>>n>>m;
  43. for(int i=1;i<=n;i++)
  44. for(int j=1;j<=m;j++)
  45. fin>>v[i][j];
  46. for(int a=1;a<=n;a++)
  47. {
  48. for(int i=1;i<=m;i++)
  49. {
  50. nodes[i]=v[a][i];
  51. use[i]=0;
  52. }
  53. etape=0;
  54. rezultat=-2;
  55. pozitie=0;
  56. dfs(1);
  57. rez[a]=rezultat;
  58. et[a]=etape;
  59. poz[a]=pozitie;
  60. }
  61. for(int i=1;i<=n;i++)
  62. if(rez[i]==9999)
  63. {
  64. if(minim==-1||et[i]<minim)
  65. {
  66. minim=et[i];
  67. winner=i;
  68. }
  69. }
  70. int losers=0;
  71. for(int i=1;i<=n;i++)
  72. if(rez[i]==0)
  73. if(et[i]<=et[winner])
  74. losers++;
  75. fout<<winner<<" "<<poz[winner]<<" "<<et[winner]<<" "<<losers;
  76. return 0;
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement