zoukankan      html  css  js  c++  java
  • PAT 1124 Raffle for Weibo Followers

    1124 Raffle for Weibo Followers (20 分)
     

    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...
    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    
    
    int main(){
        int m,n,s;
        cin >> m >> n >> s;
        vector<string> vec(m+1);
        for(int i=1;i <= m;i++){
            string t;cin >> t;
            vec[i] = t;
        }
        if(s > m) {printf("Keep going...
    ");return 0;}
    
    
        map<string,int> mp;
        for(int i=s;i <= m;){
            if(mp[vec[i]] == 0){
                cout << vec[i] << endl;
                mp[vec[i]] = 1;
                i += n;
            }
            else{
                i++;
            }
        }
    
    
    
        return 0;
    }

    发现一个性质,题面越长一般越简单。。

     
  • 相关阅读:
    Struts2+Spring3+Mybatis3开发环境搭建
    spring+struts2+mybatis
    【LeetCode】Populating Next Right Pointers in Each Node
    【LeetCode】Remove Duplicates from Sorted Array
    【LeetCode】Remove Duplicates from Sorted Array II
    【LeetCode】Binary Tree Inorder Traversal
    【LeetCode】Merge Two Sorted Lists
    【LeetCode】Reverse Integer
    【LeetCode】Same Tree
    【LeetCode】Maximum Depth of Binary Tree
  • 原文地址:https://www.cnblogs.com/cunyusup/p/10791106.html
Copyright © 2011-2022 走看看