import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner inp=new Scanner(System.in);
int n=inp.nextInt();
double c=inp.nextDouble();
int num[]=new int[n];
double w[]=new double[n];
double v[]=new double[n];
double x[]=new double[n];
for(int i=0;i<n;i++){
w[i]=inp.nextDouble();
num[i]=i;
}
for(int i=0;i<n;i++)v[i]=inp.nextDouble();
F(n,c,num,w,v,x);
for(int i=0;i<n;i++)System.out.print(x[i]+" ");
}
public static void F(int n,double c,int num[],double w[],double v[],double x[]){
for(int i=0;i<n-1;i++){
for(int j=i+1;j<n;j++){
if(v[j]/w[j]>v[i]/w[i]){
swp(w, i, j);
swp(v, i, j);
int t=num[i];
num[i]=num[j];
num[j]=t;
}
}
}
for(int i=0;i<n;i++){
if(w[i]>=c){
x[num[i]]=c/w[i];
break;
}
x[num[i]]=1;
c-=w[i];
}
}
public static void swp(double a[],int i,int j){
double t=a[i];
a[i]=a[j];
a[j]=t;
}
}
一般背包贪心
最新推荐文章于 2023-04-28 11:39:46 发布