7-2 抢楼层

暴雪公司周年庆,在论坛推出盖楼抢楼层活动,幸运儿获得霜之叹息一把,于是大家蜂拥而至,开始抢楼了,你的任务就是找出幸运儿。

输入格式:

第一行中输入三个整数N,K,S,N是楼层总数,不超过1000,K是间隔多少楼层产生幸运儿,S是第一个幸运儿的楼层编号,楼层从1开始编号。随后的N行,是各楼层的跟帖人的昵称,昵称是一个不超过20个字符的字符串,不含空格。事情原本很简单,但是霜之叹息太诱人了,于是很多人重复发帖,希望能抢到楼层,但是暴雪公司规定,每个人最多只能得1把霜之叹息,如果已经得过了,那就要跳过。

输出格式:

对每一组输入,输出幸运儿的昵称,一行一个,如果没人被选中,那就输出No one was chosen。

输入样例1:

10 3 1
Underneath
Weddinginthedream
Queen
WaitingforLove
Drinktowind
Bodyontheocean
Dark
Lolita
Thedreamofyou
Smilelikeflower

输出样例1:

Underneath
WaitingforLove
Dark
Smilelikeflower

输入样例2:

2 3 3
Underneath
Weddinginthedream

输出样例2:

No one was chosen

分析:没啥好分析的,申清题,造他就完了,奥里给
AC代码:

#include<bits/stdc++.h>
using namespace std;
int t=0;
string a;
string s[200];        //获奖人名数组
bool judge(string a)         
{
    
    
 	for(int i=0;i<t;i++)
  		if(a==s[i])
   			return false;
 	return true;
}
int main()
{
    
    
	int N,K,S;
	cin>>N>>K>>S;
	if(S>N)
	{
    
    
		cout<<"No one was chosen\n";
		return 0; 
 	}
 	for(int i=1;;i++)
 	{
    
    
 		cin>>a;
  		if(i==S)
  		{
    
    
   			cout<<a<<endl;
   			s[t++]=a;//控制查重判定范围
   			break;
  		}
 	}
 	int count=1;
 	for(int i=S+1;i<=N;i++)   
 	{
    
    
  		cin>>a;
  		if(count%K==0)
  		{
    
    
   			if(judge(a)) 
   			{
    
    
    				cout<<a<<endl;
    				s[t++] = a;
   			}
   			else 
    				continue;
  		}
  		count++;
 	} 
 	return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_45989486/article/details/108537630
7-2
今日推荐