dmsgh7678   8년 전

#include <stdio.h>
#include <malloc.h>
void under_arrayfunction(int n, int value[]);
void up_arrayfunction(int n, int value[]);
int check(int n,int value[]);
int main(void)
{
int n,k;
int *value;
int i,j;
int num;
int *total;
scanf("%d %d",&n,&k);
value=(int*)malloc(sizeof(int)*n);
total=(int*)malloc(sizeof(int)*n);

for(i=0;i<n;i++)
{
scanf("%d",&value[i]);
}
under_arrayfunction(n,value);
num=k;
for(i=0;i<n;i++)
total[i]=0;

for(j=0;j<n;j++)
{
for(i=j;i<n;i++)
{
if(num>=value[i])
{
total[j]+=(num/value[i]);
num=num%value[i];
}
}
if(num!=0)
{
total[j]=-1;
num=k;
}
else
num=k;
}
under_arrayfunction(n,total);
//for(i=0;i<n;i++)
//printf("%d\n",total[i]);
if(total[0]<0)
printf("%d\n",total[0]);
else
{
up_arrayfunction(n,total);

printf("%d\n",check(n,total));
}
/*under_arrayfunction(n,total);
if(total[0]<0)
printf("%d\n",total[0]);
else
{
up_arrayfunction(n,total);
printf("%d\n",total[0]);
}*/

}

void under_arrayfunction(int n, int value[]) //내림차순 함수
{
int temp;
int i,j;

for(i=0;i<n;i++)
{
for(j=0;j<n-1-i;j++)
{
if(value[j]<value[j+1])
{
temp=value[j];
value[j]=value[j+1];
value[j+1]=temp;
}
}
}
}
void up_arrayfunction(int n, int value[]) //오름차순 함수
{
int temp;
int i,j;

for(i=0;i<n;i++)
{
for(j=0;j<n-1-i;j++)
{
if(value[j]>value[j+1])
{
temp=value[j];
value[j]=value[j+1];
value[j+1]=temp;
}
}
}
}
int check(int n,int value[])
{
int i;
for(i=0;i<n;i++)
{
if(value[i]>0)
return value[i];
}

}

댓글을 작성하려면 로그인해야 합니다.