Cod sursa(job #3194840)

Utilizator AlexandruCorneaCornea Alexandru Mihai AlexandruCornea Data 19 ianuarie 2024 16:05:42
Problema Subsecventa de suma maxima Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.69 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin ("cmmdc2.in");
ofstream fout ("cmmdc2.out");
int f[1000001],v;
int main()
{
 int n,k;
 fin>>n>>k;
 for (int i=1; i<=n; i++)
 {
     fin>>v;
     f[v]++;

 }
 int cop=1;
 for (int i=1000000; i>=2; i--)
 {

     int ct=0,m=1;

     while (m*i<=1000000)
     {
         ct+=f[m*i];
         m++;
     }

     if (ct>=k)
     {
          cop=i;
         i=0;

     }
 }
fout<<cop<<'\n';

 for (int i=1000000; i>=1; i--)
 {

     if (i%cop==0)
     {
         while (f[i]>0 && k>0)
         {
             fout<<i<<" ";
             k--;
             f[i]--;
         }
     }
 }
    return 0;
}