#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);
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;
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];
}
}