Cerința
Se dau n
numere naturale. Dându-se totodată un număr p
, apare o intrebare care poate fi de unul dintre următoarele două feluri posibile: care este suma cifrelor valorii minime dintre primele p
ale șirului (tipul 1
) respectiv, care este numărul de divizori ai valorii maxime dintre primele p
elemente ale șirului (tipul 2
).
Date de intrare
Programul citește de la tastatură mai întâi numerele n
, t
și p
iar apoi n
numere naturale (elementele șirului).
Date de ieșire
Dacă valoarea t
, este 1
, programul va afișa pe ecran răspunsul la cerința de tipul 1
.
Cerința
Se dau n
numere naturale. Dându-se totodată un număr p
, apare o intrebare care poate fi de unul dintre următoarele două feluri posibile: care este suma cifrelor valorii minime dintre primele p
ale șirului (tipul 1
) respectiv, care este numărul de divizori ai valorii maxime dintre primele p
elemente ale șirului (tipul 2
).
Date de intrare
Programul citește de la tastatură mai întâi numerele n
, t
și p
iar apoi n
numere naturale (elementele șirului).
Date de ieșire
Dacă valoarea t
, este 1
, programul va afișa pe ecran răspunsul la cerința de tipul 1
.
Dacă valoarea t
, este 2
, programul va afișa pe ecran răspunsul la cerința de tipul 2
.
Indiferent de tipul cerinței, pe linia următoare se va afișa suma elementelor șirului.
Restricții și precizări
1 ≤ n ≤ 10
- cele
n
numere citite vor fi naturale nenule și mai mici decât1.000.000.000
- numerele șirului sunt numerotate începând cu
1
- valoarea lui
p
este cuprinsă între1
șin
, inclusiv 1 ≤ t ≤ 2
Exemple:
Intrare
6 1 3 14 13 16 22 15 1
Ieșire
4 81
Explicație
Este vorba despre o interogare de tipul 1
și minimul dintre primele trei elemente ale șirului este 13 iar suma cifrelor sale este 4.
Intrare
6 2 3 14 13 16 22 15 1
Ieșire
5 81
Explicație
Este vorba despre o interogare de tipul 2
și maximul dintre primele trei elemente ale șirului este 16 iar numărul său de divizori este 5.
#include <bits/stdc++.h> using namespace std; long long int a[11] , sum; int nrdiv(int n) { int cnt = 0; for(int i = 1 ; i * i <= n ; ++i) { if(n % i == 0) cnt+=2; if(i * i == n) cnt--; } return cnt; } int main() { int n , t , p; cin >> n >> t >> p; for(int i = 1 ; i <= n ; ++i) cin >> a[i] , sum += a[i]; int min = 1000000000; for(int i = 1 ; i <= p ; ++i) if(a[i] < min) min = a[i]; int max = 0; for(int i = 1 ; i <= p ; ++i) if(a[i] > max) max=a[i]; if(t == 1) { int s = 0; while(min) { s+=min%10; min/=10; } cout << s << endl << sum; } else { cout<< nrdiv(max) << endl << sum; } return 0; }