Informatică, întrebare adresată de Ouroboros, 9 ani în urmă

C++
#296

Cerinţa

Se dau două şiruri cu câte n elemente, numere naturale nenule. Să se verifice dacă este posibilă rearanjarea elementelor celor două şiruri astfel încât acestea să fie direct proporţionale.
Date de intrare

Programul citește de la tastatură numărul n, iar apoi cele n elemente ale şirului, separate prin spaţii.
Date de ieşire

Programul afișează pe ecran mesajul DA, dacă este posibilă rearanjarea elementelor celor două şiruri astfel încât acestea să fie direct proporţionale, respectiv NU în caz contrar.
Restricţii şi precizări

1 ≤ n ≤ 100
elementele şirurilor vor avea cel mult 4 cifre
se recomandă evitarea lucrului cu numere reale


Exemplu

Date de intrare

6
10 10 15 30 25 15
6 9 9 6 15 18

Date de ieșire

DA

Explicaţie

Numerele (10 10 15 30 25 15) şi (6 6 9 18 15 9) sunt proporţionale. Raportul este 5/3.

Răspunsuri la întrebare

Răspuns de ionutg38
9
#include <iostream> #include <algorithm> using namespace std; int n,a[101],b[101]; int main() { cin>>n; for(int i=0;i<n;i++) cin>>a[i]; sort(a,a+n); for(int i=0;i<n;i++) cin>>b[i]; sort(b,b+n); int proportional=1; for(int i=1;i<n;i++) if(a[i-1]*b[i]!=b[i-1]*a[i]) { proportional=0; break; } if(proportional) cout<<"DA"; else cout<<"NU"; return 0; }
Alte întrebări interesante