zoukankan      html  css  js  c++  java
  • A1124. Raffle for Weibo Followers

    John got a full mark on PAT. He was so happy that he decided to hold a raffle(抽奖) for his followers on Weibo -- that is, he would select winners from every N followers who forwarded his post, and give away gifts. Now you are supposed to help him generate the list of winners.

    Input Specification:

    Each input file contains one test case. For each case, the first line gives three positive integers M (<= 1000), N and S, being the total number of forwards, the skip number of winners, and the index of the first winner (the indices start from 1). Then M lines follow, each gives the nickname (a nonempty string of no more than 20 characters, with no white space or return) of a follower who has forwarded John's post.

    Note: it is possible that someone would forward more than once, but no one can win more than once. Hence if the current candidate of a winner has won before, we must skip him/her and consider the next one.

    Output Specification:

    For each case, print the list of winners in the same order as in the input, each nickname occupies a line. If there is no winner yet, print "Keep going..." instead.

    Sample Input 1:

    9 3 2
    Imgonnawin!
    PickMe
    PickMeMeMeee
    LookHere
    Imgonnawin!
    TryAgainAgain
    TryAgainAgain
    Imgonnawin!
    TryAgainAgain
    

    Sample Output 1:

    PickMe
    Imgonnawin!
    TryAgainAgain
    

    Sample Input 2:

    2 3 5
    Imgonnawin!
    PickMe
    

    Sample Output 2:

    Keep going...

     1 #include<cstdio>
     2 #include<iostream>
     3 #include<algorithm>
     4 #include<vector>
     5 #include<map>
     6 #include<string>
     7 using namespace std;
     8 map<string, int> mp;
     9 vector<string> ans;
    10 int main(){
    11     int M, N, S;
    12     string ss;
    13     scanf("%d%d%d", &M, &N, &S);
    14     int next = S;
    15     for(int i = 1; i <= M; i++){
    16         cin >> ss;
    17         if(i == next){
    18             if(mp.count(ss) == 0){
    19                 ans.push_back(ss);
    20                 mp[ss] = i;
    21                 next = next + N;
    22             }else{
    23                 next++;
    24             }
    25         }
    26     }
    27     if(ans.size() == 0)
    28         cout << "Keep going..." << endl;
    29     else{
    30         for(int i = 0; i < ans.size(); i++)
    31             cout << ans[i] << endl;
    32     }
    33     cin >> N;
    34     return 0;
    35 }
    View Code
  • 相关阅读:
    AdvStringGrid 复选框、goRowSelect
    AdvStringGrid 列宽度、列移动、行高度、自动调节
    AdvStringGrid 滚动条问题
    AdvStringGrid 标题头
    常量的 访问限制
    我自己的方法、组件、属性、变量、常量、数据库常用操作命名方法。
    泛型 for to/in 遍历 PK 效率;TEnumerator、TEnumerable
    Hadoop关键任务Job资源隔离方案
    Hadoop动态调整Map Task内存资源大小
    Hadoop动态调整Map Task内存资源大小
  • 原文地址:https://www.cnblogs.com/zhuqiwei-blog/p/8582983.html
Copyright © 2011-2022 走看看