Cod sursa(job #372030)

Utilizator dead_knightTitei Paul Adrian dead_knight Data 8 decembrie 2009 11:42:02
Problema Heapuri Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.03 kb
#include<iostream>
#include<fstream>
using namespace std;
int v[100],n,c;
void read()
{
    FILE *fin;
    fin=fopen("greedy.in","r");
    fscanf(fin,"%d %d", &n, &c);
    for(int i=1;i<=n;i++)
        fscanf(fin,"%d", &v[i]);
    fclose (fin);
}
void sort(int st, int dr)
{
    if(st<dr)
    {
        int i=st,j=dr, d=0, aux;
        d=(st+dr)/2;
        aux=v[st];
        v[st]=v[d];
        v[d]=aux;
        d=0;
        while(i<j)
        {
            if(v[i]>v[j])
            {
                aux=v[i];
                v[i]=v[j];
                v[j]=aux;
                d=1-d;
            }
            i+=d;
            j-=1-d;
        }
        sort(st, i-1);
        sort(i+1,dr);
    }
}

void write()
{
    FILE *fout;
    fout=fopen("greedy.out","w");
    int s=0,i;
    for(i=1;i<=n,s+v[i]<=c;i++)
    {
        //fprintf(fout,"%d ",v[i]);
        s+=v[i];
    }
    fprintf(fout,"%d \n", i-1);
    for(i--;i;i--)
    {
        fprintf(fout,"%d ",v[i]);
    }

}

int main()
{
    read();
    sort(1,n);
    write();
    return 0;
}