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
  • 相关阅读:
    关于hive Metadata 使用 MsSQL
    hdp 2.06 安装备忘
    对于自我管理 ObjectContextManager的测试
    关于 Linq to EF 的内存泄漏问题
    使用过多的递归出现错误,“System.StackOverflowException”类型的未经处理的异常在 mscorlib.dll 中发生
    PowerShell 如何 远程连接【转】
    win7系统浏览器老是自动弹出网页怎么办
    win10如何深度清理C盘
    Win7电脑系统崩溃怎么解决?
    win7磁盘打不开如何解决
  • 原文地址:https://www.cnblogs.com/zhuqiwei-blog/p/8582983.html
Copyright © 2011-2022 走看看