Cod sursa(job #1368192)

Utilizator Corneliu10Dumitru Corneliu Corneliu10 Data 2 martie 2015 15:03:53
Problema Economie Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <iostream>
#include <fstream>
#include <cstdlib>
using namespace std;
int v[10001],n,i,sm;
int compare(const void *a,const void *b)
{
    return *(int*)a - *(int*)b;
}
int cmmdc(int p)
{
    int a=sm,b,j;
    for(j=p+1;j<n;j++)
    {
        b=v[j];
        while(a!=b)
        {
            if(a>b) a=a-b;
            else b=b-a;
        }
        a=v[j];
    }
    return b;
}
int main()
{
    ifstream f("economie.in");
    ofstream g("economie.out");
    f>>n;
    for(i=0;i<n;i++)
        f>>v[i];
    qsort(v,n,sizeof(int),compare);
    for(i=0;i<n;i++)
    {
        sm+=v[i];
        if(sm==cmmdc(i))
        {
            g<<i+1<<"\n";
            for(int j=0;j<=i;j++)
                g<<v[j]<<"\n";
            return 0;
        }
    }
    g<<0;
}