Cod sursa(job #1910026)

Utilizator VasilescuVasilescu Eliza Vasilescu Data 7 martie 2017 15:12:05
Problema Tribute Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <fstream>
#include <vector>

using namespace std;

ifstream in("grupe2.in");
ofstream out("grupe2.out");

vector<int> g[1000];

int maxim (vector<int> v)
{
    int vm=v[0],i;
    for(i=1; i<v.size(); i++)
    {
        if(v[i]>vm)
            vm=v[i];
    }
    return vm;
}

int nrdiv(int n)
{
    int nrd=0;
    int div=1;
    while(div*div<n)
    {
        if(n%div==0)
            nrd=nrd+2;
        div++;
    }
    if(div*div==n)
        nrd++;
    return nrd;
}

int main()
{
    int n,m,i,nrd,ia,ib,x;
    in>>n >>m;
    for(i=0; i<n*m; i++)
    {
        in>>x;
        nrd=nrdiv(x);
        g[nrd].push_back(x);
    }
    ia=ib=0;
    for(i=2; i<100; i++)
    {
        if(g[i].size()>=g[ia].size())
        {
            ib=ia;
            ia=i;
        }
        else if(g[i].size()>=g[ib].size())
            ib=i;
    }
    out<<ia<<' '<<g[ia].size()<<' '<<maxim(g[ia])<<endl;
    if (g[ib].size() != 0)
    {
        out<<ib<<' '<<g[ib].size()<<' '<<maxim(g[ib])<<endl;
    }
    else
    {
        out << "0 0 0\n";
    }
    return 0;
}