投篮游戏
题目描述小赛最近迷上了篮球,报名参加一个投篮游戏。球场有p个篮筐,编号为0, 1, ..., p-1,每个篮筐下面有个袋子,每个袋子最多能装入一个篮球。现在有n个篮球,第
i个篮球有一个数字xi,投篮规则是将数字为xi的篮球,投入篮筐编号为xi除以p所得的余数。如果袋子里面已经有球,那么篮球就会弹出,投篮游戏结束,输出i;
否则重复进行将篮球投完,游戏结束,输出-1。问小赛会在何时结束游戏?
Java:
package com.test.sanfenxian;
import java.util.Scanner;
public class Main {
public int f2(int []a,int d) {
int sum=0;
for(int i=0;i<a.length;i++) {
if(a[i]>=d)
sum+=3;
else sum+=2;
}
return sum;
}
public int f1(int []an,int []am) {
int max=0;
for(int i=0;i<an.length;i++) {
if(max<(f2(an,an[i])-f2(am,an[i])))
max=f2(an,an[i])-f2(am,an[i]);
}
return max;
}
public static void main(String[] args) {
Scanner in =new Scanner(System.in);
int n=in.nextInt();
int[] an=new int [n];
for(int i=0;i<n;i++){
an[i]=in.nextInt();
}
int m=in.nextInt();
int [] am=new int [m];
for(int i=0;i<m;i++)
am[i]=in.nextInt();
Main mn=new Main();
System.out.println(mn.f1(an, am));
}
}
输入
第一行数据是两个整数:p, n (2≤p,n≤300),p表示篮筐数目,n表示篮球数目。接着n行数据表示篮球上的数字xi (0≤xi≤109)。 |
样例输入
10 5 0 21 53 41 53
|
输出
输出投篮游戏结束时输出结果。
|
样例输出
4 |