fork download
  1. #include <iostream>
  2. using namespace std;
  3. /*
  4. Verificam prima jumatate a sirului,
  5. si daca in aceasta gasim egalitati,
  6. afisam valoarea 2, altfel afisam valoarea 1.
  7.  
  8. Declaram si citim datele de intrare.
  9. Declaram o variabila cu rol de flag initizlizata cu "1"
  10. Cu ajutorul a doua structuri repetitive inlantuite,
  11. pentru fiecare element din prima jumatate, verificam celelalte elemente tot din prima jumatate
  12. Daca gasim egalitati schimbam valoarea variabilei cu rol de flag la 0, si afisam cifra doi.
  13. Apoi, daca variabila de tip flag este "1", afisam "1".
  14. Teste:
  15. 10
  16. 0 1 1 0 4 5 6 7 8 9 -> 2
  17.  
  18. 10
  19. 0 1 1 3 4 5 6 7 8 9 -> 2
  20.  
  21. 10
  22. 0 1 2 3 4 9 6 7 8 9 - 1
  23.  
  24. */
  25. const int MAX_SIZE = 10;
  26.  
  27. int main() {
  28. int n, v[MAX_SIZE + 1], fr[MAX_SIZE * 2 + 1] = {0};
  29. cin >> n;
  30. for (int i = 1; i <= n; ++i) {
  31. cin >> v[i];
  32. if (i <= n / 2) {
  33. ++fr[v[i]];
  34. }
  35. }
  36. int itIs = 1;
  37. for (int i = 0; i <= MAX_SIZE * 2; ++i) {
  38. if (fr[i] > 1) {
  39. itIs = 0;
  40. cout << 2;
  41. i = MAX_SIZE * 2 + 1;
  42. }
  43. }
  44. /*
  45. for (int i = 1; i < n / 2; ++i) {
  46. for (int j = i + 1; j <= n / 2; ++j) {
  47. if (v[i] == v[j]) {
  48. itIs = 0;
  49. cout << 2;
  50. j = n;
  51. i = n;
  52. }
  53. }
  54. }*/
  55. if (itIs) {
  56. cout << 1;
  57. }
  58. return 0;
  59. }
Success #stdin #stdout 0.01s 5280KB
stdin
10
0 1 2 3 0 5 6 7 8 9
stdout
2