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 <iostream> using namespace std; int main() { long long int n,cer,p,a,min=1000000005,max=0,rez=0; cin>>n>>cer>>p; for(int i=0;i<n;i++) { cin>>a; rez+=a; if(a<min&&i<p)min=a; if(a>max&&i<p)max=a; } int s=0; while(min) { s+=min%10; min/=10; } int s2=0,d=1; { while(d*d<max) { if(max%d==0)s2+=2; d++; } if(d*d==max)s2++; } if(cer==1) cout<<s<<'\n'; else cout<<s2<<'\n'; cout<<rez; return 0; }