a53

gradina1

a53
Oct 30th, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.38 KB | None | 0 0
  1. #include <fstream>
  2. using namespace std;
  3. int dlin[]={-1,0,1,0},dcol[]={0,1,0,-1},n,m,s,a[60][60],b[60][60],u[101],maxim,maxim_c,k;
  4.  
  5. void Citire()
  6. {
  7. ifstream f("gradina1.in");
  8. f>>n>>m>>s;
  9. for(int i=1;i<=n;++i)
  10. for(int j=1;j<=m;++j)
  11. f>>a[i][j];
  12. for(int i=1;i<=s;++i)
  13. f>>u[i];
  14. for(int i=1;i<=n;++i)
  15. for(int j=1;j<=m;++j)
  16. f>>b[i][j];
  17. f.close();
  18. }
  19.  
  20. void Bordare()
  21. {
  22. for(int i=0;i<=m+1;++i)
  23. a[0][i]=a[n+1][i]=200;
  24. for(int i=1;i<=n;++i)
  25. a[i][0]=a[i][m+1]=200;
  26. }
  27.  
  28. void Umplere(int l,int c)
  29. {
  30. for(int i=0;i<4;++i)
  31. if(a[l+dlin[i]][c+dcol[i]]==k)
  32. ++maxim_c,a[l+dlin[i]][c+dcol[i]]=200,Umplere(l+dlin[i],c+dcol[i]);
  33. else
  34. if(a[l+dlin[i]][c+dcol[i]]!=-k&&a[l+dlin[i]][c+dcol[i]]<=0&&b[l+dlin[i]][c+dcol[i]]>=u[k])
  35. ++maxim_c,a[l+dlin[i]][c+dcol[i]]=-k,Umplere(l+dlin[i],c+dcol[i]);
  36. }
  37.  
  38. int main ()
  39. {
  40. Citire();
  41. Bordare();
  42. for(int l=1;l<=n;++l)
  43. for(int c=1;c<=m;++c)
  44. if(a[l][c]>=1&&a[l][c]<=s)
  45. {
  46. maxim_c=1;
  47. k=a[l][c];
  48. a[l][c]=200;
  49. Umplere(l,c);
  50. if(maxim_c>maxim)
  51. maxim=maxim_c;
  52. }
  53. ofstream g("gradina1.out");
  54. g<<maxim<<'\n';
  55. g.close();
  56. return 0;
  57. }
Add Comment
Please, Sign In to add comment