CF 357A.Group of Students(Java实现)
问题分析
一共m级分数,每级分数i个人,限定每组最小人数x,最大人数m
思路分析
在我看来这个题目就是累加,如果获得i分数的人数加起来满足限定且剩余人数也满足那就方案ok,如果全都不满足那就没有方案
代码
import java.util.*;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
Scanner sc =new Scanner(System.in);
int m= sc.nextInt();//获取m
sc.nextLine();//屯回车
int[] arr=new int[m];//存获得i分数的人数
int total=0;//总人数
for (int i=0;i<m;i++){
arr[i]= sc.nextInt();//赋值存入
total+=arr[i];//计算总人数
}
sc.nextLine();//屯回车
int x=sc.nextInt();//最小限度
int y=sc.nextInt();//最大限毒
int re=0;//初始化答案
int xiao=0;//初学组人数初始化
for (int i=0;i<m;i++){
xiao+=arr[i];//一级一级赋值给初学组人数
if (xiao>=x&&xiao<=y&&total-xiao>=x&&total-xiao<=y){//判断初学组和中学组是否都满足条件
re=i+2;//如果满足那用于划线的分数就是i+2,
break;//满足一种条件的方案就退出
}
}
System.out.println(re);
}
}
感谢您能够看到这里,一起见证小何同学的算法学习,如果您有不同的见解,希望能得到您的指点和点悟;如果您是和我一样的同学,也希望这篇文章能对您有所帮助。