小D是一名老师,他想选出一些同学参加一个团体比赛。
总共有n个同学,每个同学有一个能力值x和一个合作值y,小D将这些同学排成一排。
选人的规则如下:小D将选择一排中连续的k个同学参加比赛,而且为了保证比赛成绩,这k个同学的能力值不能小于a,合作值不能小于b。小D想知道总共有多少种可能的选人方案。
第一行四个正整数n,k,a,b。
第二行n个通过空格隔开的正整数表示一排n个同学的能力值。
第二行n个通过空格隔开的正整数表示一排n个同学的合作值。
n <= 80000,
保证k<=n且x,y,a,b<=100000。
输出一个非负整数表示选人方案数。
10 2 2 4 2 2 9 1 8 1 6 1 7 7 4 8 5 1 9 4 1 3 9 4
3
有选择第1,2两个人,第2,3两个人,第9,10两个人三种方案。
public static void main(String[] args) { Scanner sc=new Scanner(System.in); int n = sc.nextInt(); int k=sc.nextInt(); int a = sc.nextInt(); int b= sc.nextInt(); int[] as=new int[n]; int[] bs=new int[n]; int sum=0; for (int i=0;i<n;i++){ as[i]=sc.nextInt(); } for (int i=0;i<n;i++){ bs[i]=sc.nextInt(); } for (int i=0;i<=n-k;i++){ int lag=0; for(int j=i;j<k+i;j++){ if (as[j]<a||bs[j]<b){ break; }else { lag++; } } if (lag==k){ sum++; } } System.out.println(sum); }
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int k = in.nextInt();
int a = in.nextInt();
int b = in.nextInt();
int[] arrX = new int[n];
int[] arrY = new int[n];
for (int i = 0; i < n; i++) {
arrX[i] = in.nextInt();
}
for (int i = 0; i < n; i++) {
arrY[i] = in.nextInt();
}
int count = 0;
int [] pre = new int[n+1];
for(int i=1;i<=n;i++){
if (arrX[i-1] >= a && arrY[i-1] >= b) {
pre[i]=pre[i-1]+1;
}else{
pre[i]=pre[i-1];
}
}
for(int i=k;i<=n;i++){
if(pre[i]-pre[i-k]==k){
count++;
}
}
System.out.println(count);
}
}