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
.
#include <bits/stdc++.h> using namespace std; int main() { int n , a[101] , b[101] , s1 = 0 , s2 = 0 , cate = 0; cin >> n; for(int i = 0 ; i < n ; ++i) { cin >> a[i]; s1+=a[i]; } for(int i = 0 ; i < n ; ++i) { cin >> b[i]; s2+=b[i]; } for(int i = 0 ; i < n ; ++i) { int cnt=0; for(int j = 0 ; j < n ; ++j) { if((double)a[i] / b[j] == (double)s1 / s2) cnt++; } if(cnt!=0) cate++; } if(cate == n) cout << "DA"; else cout << "NU"; return 0; }