不得不说作为第一题它题目的长度是真的长,光读题都读了好久,
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner as=new Scanner(System.in);
int n=as.nextInt();//题目数量
int m=as.nextInt();//神秘数字
int[] c=new int[n+1];//c值
c[0]=1;
int[] ti= new int[n+1];//选项数量为了方便计数ti[0]=0
int[] b=new int[n+1];//这是B值,即答案
int k=0;
for (int i=1;i<=n;i++)
{
ti[i]=as.nextInt();//加入A值
//添加C值
if(i==1) c[i]=ti[i];
else c[i]=c[i-1]*ti[i];
// 测试代码可删去 System.out.println("现在是"+ i+" 当前C值"+c[i]+"="+"/" );
}
for(int i=1;i<=n;i++)//计算b值
{
//破解并加载答案 这里是根据提示哪里的公式写的
if(i==1){b[i]=m%c[i]/c[0]; k=c[0]*b[i];}//第一次的
else{ b[i]=(m%c[i]-k)/c[i-1]; k=c[i-1]*b[i];}
// 测试代码可删去 System.out.println("b[i]是"+ b[i]+" "+m%c[i]+"-"+k+"/"+c[i-1] );
}
//打印
for(int i=1;i<=n;i++)
{
System.out.print(b[i]+" ");
}
}
}