[编程题-蘑菇街] 投篮游戏

有一个投篮游戏。球场有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 5021534153
输出例子:
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;
}
时间: 2024-10-11 10:54:48

[编程题-蘑菇街] 投篮游戏的相关文章

YTU 2845: 编程题AB-卡片游戏 dfsA

2845: 编程题AB-卡片游戏 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 19  Solved: 9 [Submit][Status][Web Board] Description 小明对数字的序列产生了兴趣: 现有许多张不同的数字卡片,用这若干张卡片能排列出很多序列,要求算出这若干张不同卡片的全排列总数,并按从小到大的顺序输出这些序列. Input 输入数字n,表示输入数字序列个数,接着输入n个不同的数字,代表n张卡片上的数字(0<=数字

[编程题-蘑菇街] 最大间隔

[编程题] 最大间隔 给定一个递增序列,a1 <a2 <...<an .定义这个序列的最大间隔为d=max{ai+1 - ai }(1≤i<n),现在要从a2 ,a3 ..an-1 中删除一个元素.问剩余序列的最大间隔最小是多少? 输入描述: 第一行,一个正整数n(1<=n<=100),序列长度;接下来n个小于1000的正整数,表示一个递增序列. 输出描述: 输出答案. 输入例子: 51 2 3 7 8 输出例子: 4 #include<iostream>

[编程题-蘑菇街]搬圆桌

[编程题] 搬圆桌 现在有一张半径为r的圆桌,其中心位于(x,y),现在他想把圆桌的中心移到(x1,y1).每次移动一步,都必须在圆桌边缘固定一个点然后将圆桌绕这个点旋转.问最少需要移动几步. 输入描述: 一行五个整数r,x,y,x1,y1(1≤r≤100000,-100000≤x,y,x1,y1≤100000) 输出描述: 输出一个整数,表示答案 输入例子: 2 0 0 0 4 输出例子: 1 #include<iostream> #include<cmath> #include

[编程题-蘑菇街]回文串

[编程题] 回文串 给定一个字符串,问是否能通过添加一个字母将其变为回文串. 输入描述: 一行一个由小写字母构成的字符串,字符串长度小于等于10. 输出描述: 输出答案(YES\NO). 输入例子: coco 输出例子: YES #include<iostream> #include<string> using namespace std; bool f(string& s, int i) { int l = 0, r = s.size() - 1; if (l == i)

[编程题-蘑菇街]聊天

[编程题] 聊天 A和B是好友,他们经常在空闲时间聊天,A的空闲时间为[a1 ,b1 ],[a2 ,b2 ]..[ap ,bp ].B的空闲时间是[c1 +t,d1 +t]..[cq +t,dq +t],这里t为B的起床时间.这些时间包括了边界点.B的起床时间为[l,r]的一个时刻.若一个起床时间能使两人在任意时刻聊天,那么这个时间就是合适的,问有多少个合适的起床时间? 输入描述: 第一行数据四个整数:p,q,l,r(1≤p,q≤50,0≤l≤r≤1000).接下来p行数据每一行有一对整数ai,

编程题-翻棋游戏-枚举

题目 约翰知道,那些高智力又快乐的奶牛产奶量特别高.所以他做了一个翻瓦片的益智游戏来娱乐奶牛.在一个M×N(1≤M,N≤15)的骨架上,每一个格子里都有一个可以翻转的瓦片.瓦片的一面是黑色的,而另一面是白色的.对一个瓦片进行翻转,可以使黑变白,也可以使白变黑.然而,奶牛们的蹄子是如此的巨大而且笨拙,所以她们翻转一个瓦片的时候,与之有公共边的相邻瓦片也都被翻转了.那么,这些奶牛们最少需要多少次翻转,使所有的瓦片都变成白面向上呢?如杲可以做到,输出字典序最小的结果(将结果当成字符串处理).如果不能做

POJ C程序设计进阶 编程题#3 : 排队游戏

编程题#3:排队游戏 来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩.) 注意: 总时间限制: 1000ms 内存限制: 65536kB 描述 在幼儿园中,老师安排小朋友做一个排队的游戏.首先老师精心的把数目相同的小男孩和小女孩编排在一个队列中,每个小孩按其在队列中的位置发给一个编号(编 号从0开始).然后老师告诉小朋友们,站在前边的小男孩可以和他后边相邻的小女孩手拉手离开队列,剩余的小朋友重新站拢,再按前后相邻的小男孩小女孩手拉 手离开队列游戏

蘑菇街2016研发工程师在线编程题

传送门 第一题: [编程题] 搬圆桌 现在有一张半径为r的圆桌,其中心位于(x,y),现在他想把圆桌的中心移到(x1,y1).每次移动一步,都必须在圆桌边缘固定一个点然后将圆桌绕这个点旋转.问最少需要移动几步. 输入描述: 一行五个整数r,x,y,x1,y1(1≤r≤100000,-100000≤x,y,x1,y1≤100000) 输出描述: 输出一个整数,表示答案 输入例子: 2 0 0 0 4 输出例子: 1 题解转自:ixiaomo 思路很简单,千万别想复杂了 无论圆桌如何移动,都必须在圆

搜狐2016研发工程师编程题

1.[编程题]马戏团 搜狐员工小王最近利用假期在外地旅游,在某个小镇碰到一个马戏团表演,精彩的表演结束后发现团长正和大伙在帐篷前激烈讨论,小王打听了下了解到, 马戏团正打算出一个新节目“最高罗汉塔”,即马戏团员叠罗汉表演.考虑到安全因素,要求叠罗汉过程中,站在某个人肩上的人应该既比自己矮又比自己瘦,或相等. 团长想要本次节目中的罗汉塔叠的最高,由于人数众多,正在头疼如何安排人员的问题.小王觉得这个问题很简单,于是统计了参与最高罗汉塔表演的所有团员的身高体重,并且很快找到叠最高罗汉塔的人员序列.