Informatică, întrebare adresată de Dumbo15, 8 ani în urmă

Am aceasta problema extrem de usoara si nu pot sa inteleg de ce iau doar 50 de puncte? Daca ma poate ajuta cineva as fi recunoscator!!!


Cerinţa

Se dă un vector cu n elemente numere naturale. Să se verifice dacă toate elementele vectorului sunt diferite două câte două.


Date de intrare

Programul citește de la tastatură numărul n, apoi n numere naturale, reprezentând elementele vectorului.


Date de ieşire

Programul afișează pe ecran mesajul DA, dacă vectorul are toate elementele diferite, sau NU, în caz contrar.


Restricţii şi precizări

1 ≤ n ≤ 500

fiecare element al vectorului va avea cel mult patru cifre


Exemplu

7

5 8 10 4 9 7 6

DA



===SOLUTIA MEA===

#include

using namespace std;

int main() {

int n,v[50001];

bool diferite = true;

cin >> n;

for (int i = 1; i <= n; i++)

cin >> v[i];

for (int i = 1; i <= n - 1; i++) {

if (v[i] == v[i + 1]) {

diferite = false;

}

}

if (diferite)

cout << "DA";

else

cout << "NU";

}


daniel22: pentru ca tu compari doar elementul i cu elemntul i + 1, dar ar trebui sa compari cu i+1,i+2,...,n.
daniel22: De exemplu daca ai numerele 5 8 10 4 9 7 5, ar trebui sa afisezi NU pentru ca 5 apare de 2 ori. Dar tu verifici daca 5==8, 8==10, 10==4,..., 7==5 si o sa iti dea DA.
Dumbo15: Pai nu asta cere problema?
Dumbo15: Doua cate doua eu asa inteleg?
daniel22: daca faci cum zic eu primesti 100 puncte
daniel22: se refera la oricare 2 elemente, nu doar la elementele vecine
andrei750238: Tu compari doar elementele de pe pozitii consecutive. Cerinta cere sa spui daca elementele TOATE elementele sunt diferite sau nu.

Spre exemplu numerele 1 2 3 4 5 1 6 nu sunt diferite doua cate doua pentru ca numarul 1 apare de doua ori.

Răspunsuri la întrebare

Răspuns de andrei750238
4

#include <iostream>

using namespace std;

int main() {

int n,v[50001];

bool diferite = true;

 

//Citire date

cin >> n;

for (int i = 1; i <= n; i++) cin >> v[i];

 

//Procesare

for (int i = 1; i <=n-1; i++) {

 for(int j=i+1;j<=n-1;j++){

  if(v[i]==v[j]) diferite = 0;

 }

}

if (diferite) cout << "DA";

else cout << "NU";

}

Alte întrebări interesante