蘑菇街笔试题 投篮比赛

来源:互联网 发布:职称论文淘宝代笔 编辑:程序博客网 时间:2024/04/29 09:53

有一个投篮游戏。球场有p个篮筐,编号为0,1…,p-1。每个篮筐下有个袋子,每个袋子最多装一个篮球。有n个篮球,每个球编号xi 。规则是将数字为xi 的篮球投到xi 除p的余数为编号的袋里。若袋里已有篮球则球弹出游戏结束输出i,否则重复至所有球都投完。输出-1。问游戏最终的输出是什么?

输入描述:
第一行两个整数p,n(2≤p,n≤300)。p为篮筐数,n为篮球数。接着n行为篮球上的数字xi(0≤xi≤1e9)

输出描述:
输出游戏的结果

输入例子:
10 5
0
21
53
41
53

输出例子:
4

include <stdio.h>#include <stdlib.h>#include <string.h>int main() {    int p, n, i;    int arr[303];    int flag[303];    while (scanf("%d %d", &p, &n) != EOF) {        memset(flag, 0, sizeof(flag));        for (i = 0; i < n; ++i) {            scanf("%d", &arr[i]);        }        int index;        for (i = 0; i < n; ++i) {            index = arr[i] % p;            if (flag[index]) {                break;            }            flag[index] = 1;        }        if (i == n) {            printf("-1\n");        } else {            printf("%d\n", i + 1);        }    }    return 0;}
0 0
原创粉丝点击