Advertisement
a53

culori6

a53
Apr 27th, 2022
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.30 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. ifstream fin("culori.in");
  4. ofstream fout("culori.out");
  5. int C,N,M;
  6. int nr1[505],nr2[505],nrmax[501];
  7.  
  8. int compar(int x[],int y[])
  9. {
  10. if(x[0]!=y[0])
  11. return (x[0]<y[0]?-1:1);
  12. int i=1;
  13. while(x[i]==y[i]&&i<=x[0])
  14. ++i;
  15. if(i>x[0])
  16. return 0;
  17. if(x[i]<y[i])
  18. return -1;
  19. return 1;
  20. }
  21.  
  22. int main()
  23. {
  24. fin>>C>>N;
  25. if(C==1)
  26. {
  27. int L,M,Lmax=0,Kmax=1; /// Presupun ca primul rand citit corespunde cerintei
  28. for(int i=1;i<=N;++i) /// Pentru cele N randuri
  29. {
  30. fin>>M; /// Citesc numarul de patratele colorate pentru randul i
  31. L=M; /// Memorez lungimea randului
  32. int c1,c2; /// Culori alaturate
  33. fin>>c1; /// Citesc prima culoare
  34. for(int j=2;j<=M;++j) /// Incepand cu a 2-a culoare citesc toate culorile de pe randul i
  35. {
  36. fin>>c2; /// Citesc urmatoarea culoare
  37. if(c1!=c2) /// Daca e diferita, atunci trec la urmatorul patratel
  38. c1=c2; /// si c2 va fi culoarea anterioara (c1)
  39. else /// altfel, randul nu corespunde
  40. L=0; /// si fac lungimea 0 ca sa nu iau randul in calcul (dar trebuie sa citesc restul valorilor
  41. }
  42. if(L>=Lmax) /// Am gasit un rand de lungime mai mare cu culori alaturate diferite
  43. {
  44. if(L==Lmax) /// Daca am gasit inca un rand de aceeasi lungime care corespunde cerintei
  45. ++Kmax; /// marim Kmax
  46. if(L>Lmax) /// Daca am gasit un rand de lungime ,mai mare ce corespunde cerintei
  47. Lmax=L,Kmax=1; /// Memoram noua lungime si initializam Kmax
  48. }
  49. }
  50. fout<<Lmax<<' '<<Kmax<<'\n';
  51. return 0;
  52. }
  53. fin>>nr1[0];
  54. nrmax[0]=nr1[0];
  55. for(int j=1;j<=nr1[0];++j)
  56. fin>>nr1[j],nrmax[j]=nr1[j];
  57. for(int i=2;i<=N;++i)
  58. {
  59. fin>>nr2[0];
  60. for(int j=1;j<=nr2[0];++j)
  61. fin>>nr2[j];
  62. int ok=compar(nrmax,nr2);
  63. if(ok<0)
  64. {
  65. nrmax[0]=nr2[0];
  66. for(int j=1;j<=nrmax[0];++j)
  67. nrmax[j]=nr2[j];
  68. }
  69. }
  70. for(int i=1;i<=nrmax[0];++i)
  71. fout<<nrmax[i];
  72. return 0;
  73. }
  74.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement