zoukankan      html  css  js  c++  java
  • 有一个投篮游戏。球场有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;
    }
  • 相关阅读:
    第六周进度条
    团队开发需求分析视频连接
    敏捷开发综述
    数组2--数组首尾相接,求最大子数组
    数组1--求一个数的最大子数组
    第四周进度条
    四则运算3
    第三周进度条
    第二周进度条
    单元测试
  • 原文地址:https://www.cnblogs.com/wdan2016/p/6515906.html
Copyright © 2011-2022 走看看