Alexandru este elev în clasa a V-a și este foarte pasionat de informatică. Într-o zi acesta a descoperit un vector A
cu N
elemente și a început să se joace cu ele. Tatăl său, profesor de matematică, îi admiră ingeniozitatea și îi pune M
întrebări de forma: “Câte valori din vectorul A
sunt divizibile cu numărul x
?”.
Cerința
Alexandru a rezolvat deja această problemă banală, așa că te provoacă și pe tine să o rezolvi!
Date de intrare
Fișierul de intrare mdiv.in
conține pe prima linie numărul N
. Pe a doua linie se află N
numere naturale, reprezentând elementele vectorului. Pe a treia linie se află numărul M
, iar pe următoarele M
linii se află întrebările.
Date de ieșire
Fișierul de ieșire mdiv.out
va conține M
linii, pe linia i
aflându-se răspunsul la întrebarea i
.
Restricții și precizări
1 ≤ N, M ≤ 100.000
- fiecare valoare din vector, cât și fiecare întrebare
≤ 1.000.000
și sunt nenule.
Exemplu
mdiv.in
8 2 4 2 6 1 9 1 5 3 2 5 3
mdiv.out
4 1 2
Explicație
Numerele divizibile cu 2
sunt 2
, 4
, 2
, 6
.
Cum e corect?
cout < "As la info";
cout << "As la info";
cout >> "As la info";
Felicitări! Poți mai mult?
Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.
Greșit, dar nu-i bai!
Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.
Rezolvare
Iată rezolvarea de 100 de puncte pentru problema MDiv:
// Todoran Alexandru Raul, clasa a V-a, Colegiul National Aurel Vlaicu Orastie
#include <iostream>
#include <fstream>
using namespace std;
int n,a,x[1000002],r[1000002],m,i,o,s,mx;
int main()
{
ifstream fin ("mdiv.in");
ofstream fout ("mdiv.out");
fin>>n;
for(i=1;i<=n;i++)
{
fin>>a;
if(a>mx)mx=a;
x[a]++;
}
fin>>m;
for(i=1;i<=m;i++)
{
fin>>a;
if(r[a]==0)
{
if(a!=1)
for(o=0;o<=mx;o+=a)r[a]+=x[o];
else r[a]=n;
}
fout<<r[a]<<"\n";
}
return 0;
}
Atenție
Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa .
Rezolvarea problemei #2031 MDiv
Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #2031 MDiv de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.
Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!