1. 程式人生 > >【蘑菇街】投籃遊戲

【蘑菇街】投籃遊戲

題目描述

有一個投籃遊戲。球場有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)

輸出描述:

輸出遊戲的結果

示例1

輸入

複製

10 5
0
21
53
41
53

輸出

複製

4
#define _CRT_SECURE_NO_WARNINGS
int main()
{
	int p, n;
	while (cin >> p >> n)
	{
		vector<bool> table(p, 0);
		int flag = 0;
		for (int i = 0; i < n; i++)
		{
			int label;
			scanf_s("%d\n", &label);

			if (!table[label%p]) // no ball
				table[label%p] = 1;
			else // have ball
			{
				flag = 1;
				cout << i + 1 << endl;
				break;
			}
		}
		if (!flag)
			cout << -1 << endl;
	}
	return 0;
}