[编程题-蘑菇街] 投篮游戏
有一个投篮游戏。球场有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<iostream> #include<set> using namespace std; int main() { long p,n; while(cin>>p>>n) { set<long> s; int flag=false; for(int i=0;i<n;i++) { int x; cin>>x; if(flag) continue; if(s.find(x%p)==s.end()) s.insert(x%p); else { cout<<i+1<<endl; flag=true; } } if(!flag) cout<<"-1"<<endl; } return 0; }