Advertisement
a53

trio

a53
May 9th, 2019
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.46 KB | None | 0 0
  1. /**
  2. problema: trio
  3. */
  4. #include <fstream>
  5. #include <iostream>
  6. #include <algorithm>
  7. using namespace std;
  8. ifstream f("trio.in");
  9. ofstream g("trio.out");
  10.  
  11. int N,C,nr,ap[1000],c[4],max_identice,nr_ord,nr_grupuri;
  12. bool grup[1000]= {0}; //cerinta2
  13. int ultima_poz[1000],prima_poz[1000]= {0},max_echivalente; //cerinta3
  14.  
  15. int main()
  16. {
  17. int i;
  18. f>>C>>N;
  19. for(int i=1; i<=N; i++)
  20. {
  21. f>>c[1]>>c[2]>>c[3];
  22. if(c[3]>c[1])
  23. swap(c[1],c[3]);
  24. nr=(c[1]*100+c[2]*10+c[3]);
  25. ap[nr]++;
  26. if(ap[nr]>max_identice)
  27. max_identice=ap[nr];
  28. sort(c+1,c+4);//ordonez cifrele de pe o piesa pentru a determina cele ce aprtin aceluiasi grup
  29. nr_ord=c[1]*100+c[2]*10+c[3];
  30. grup[nr_ord]=1;// vector de aparitii ptr grup
  31. if(prima_poz[nr_ord]==0)
  32. prima_poz[nr_ord]=i;//memorez primul nr de ordine al unei piese din grup
  33. else
  34. ultima_poz[nr_ord]=i;//memorez ultimul numar de ordine al unei piese din acelasi grup
  35. }
  36. if (C==1)
  37. g<<max_identice-1<<'\n';
  38. else
  39. if (C==2)
  40. {
  41. for(i=0; i<=999; i++)
  42. if(grup[i]) nr_grupuri++;
  43. g<<nr_grupuri<<'\n';
  44. }
  45. else
  46. {
  47. for(i=0; i<=999; i++)
  48. if(ultima_poz[i]-prima_poz[i]>max_echivalente)
  49. max_echivalente=ultima_poz[i]-prima_poz[i];
  50. g<<max_echivalente+1<<'\n';
  51. }
  52. return 0;
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement