有一个投篮游戏。球场有p个篮筐,编号为0,1...,p-1。每个篮筐下有个袋子,每个袋子最多装一个篮球。有n个篮球,每个球编号xi 。规则是将数字为xi 的篮球投到xi 除p的余数为编号的袋里。若袋里已有篮球则球弹出游戏结束输出i,否则重复至所有球都投完。输出-1。问游戏最终的输出是什么?
// ConsoleApplication5.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include<vector>
#include<iostream>
#include<string>
#include <stack>
#include<algorithm>
using namespace std;
int main()
{
int p,n;
while (cin >> p>>n)
{
if (n == 0 || p == 0)
{
cout << -1 << endl;
break;
}
vector<int> basketballs;
vector<int> basket;
for (int i = 0; i < n; i++)
{
int num;
cin >> num;
basketballs.push_back(num);
}
for (int i = 0; i < p; i++)
{
basket.push_back(0);
}
int flag = -1;
for (int i = 0; i < n; i++)
{
if (basket[basketballs[i]%p] != 0)
{
flag = i;
break;
}
else
{
basket[basketballs[i]%p] = 1;
}
}
if (flag == -1)
{
cout << -1;
}
else
{
cout << flag + 1 << endl;
}
}
return 0;
}