nicuvlad76

Untitled

Dec 10th, 2020
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.34 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstring>
  3. #define N 200
  4. using namespace std;
  5. //ifstream cin("date.in");
  6. //ofstream cout("date.out");
  7. char cuv[N];
  8. int i,n,j,A[N][8];
  9.  
  10. void Binar(char c,int v[8])
  11. {
  12. unsigned x=unsigned(c);
  13. for(i=0; i<8; i++) v[i]=0;
  14. i=7;
  15. while(x)
  16. {
  17. v[i--]=x%2;
  18. x/=2;
  19. }
  20.  
  21. }
  22. void Generare(char cuv[N],int A[N][8],int &n)
  23. {
  24. int v[8];
  25. n=strlen(cuv);
  26. for(int i=0; i<n; i++)
  27. {
  28. Binar(cuv[i],v);
  29. for(int j=0; j<8; j++)
  30. A[i+1][j+1]=v[j];
  31. }
  32. }
  33.  
  34. void Afisare(int A[N][8],int n)
  35. {
  36. for(int i=1; i<=n; i++)
  37. {
  38. for(int j=1; j<=8; j++)
  39. cout<<A[i][j]<<" ";
  40. cout<<"\n";
  41. }
  42. }
  43. int submat(int A[N][8],int n,int x)
  44. {
  45. int S[N][8]= {0};
  46. int i, j;
  47. for (i=1; i<=n; i++) S[i][i]=A[i][1];
  48. for (j=1; j<=8; j++) S[1][j]=A[1][j];
  49. for (i=2; i<=n; i++)
  50. for (j=2; j<=8; j++)
  51. if (A[i][j]==x) S[i][j]==x;
  52. else S[i][j]=min(S[i][j-1],min(S[i-1][j],S[i-1][j-1]))+1;
  53. int maxi=0;
  54. for(i=1;i<=n;i++)
  55. for(j=1;j<=8;j++)
  56. if(S[i][j]>maxi)
  57. maxi=S[i][j];
  58. return maxi;
  59.  
  60. }
  61.  
  62.  
  63.  
  64. int main()
  65. {
  66. cin>>cuv;
  67. Generare(cuv,A,n);
  68. // Afisare(A,n);
  69. int k=submat(A,n,1);
  70. int p=submat(A,n,0);
  71. cout<<max(k,p);
  72. return 0;
  73. }
Add Comment
Please, Sign In to add comment