• PAT-1124. Raffle for Weibo Followers (20)


    1124. Raffle for Weibo Followers (20)

    时间限制
    400 ms
    内存限制
    65536 kB
    代码长度限制
    16000 B
    判题程序
    Standard
    作者
    CHEN, Yue

    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;
    
    int N, M, K;
    vector<string> userVec;
    vector<string> ansVec;
    
    int main()
    {
        cin>>N>>M>>K;
        string user;
        int m = 0;
        int k = 1;
        for(int i = 1; i <= N; i++) {
            cin>> user;
            //if(i >= K+m*M) {
                int flag = 1;
                for(int j = 0; j < ansVec.size(); j++) {
                    if(user == ansVec[j]) {
                        flag = 0;
                        break;
                    }
                }
                if(flag) {
                    if(k >= K+m*M) {
                        ansVec.push_back(user);
                        m++;
                    }
                    k++;
                }
            //}
        }
        if(ansVec.empty()) {
            cout<< "Keep going..."<< endl;
            return 0;
        }
        for(int i = 0; i < ansVec.size(); i++) {
            cout<< ansVec[i]<< endl;
        }
        return 0;
    }
  • 相关阅读:
    Redis 笔记
    React Native
    docker run 命令
    vue 集成腾讯地图基础api Demo集合
    在uniapp H5项目中使用腾讯地图sdk
    基于UE4/Unity绘制地图
    腾讯位置服务打车乘客端小车平滑移动-安卓篇
    腾讯位置服务定位打卡功能实现
    腾讯位置服务GPS轨迹回放-安卓篇
    腾讯位置服务个性化图层创建及发布
  • 原文地址:https://www.cnblogs.com/ACMessi/p/8527684.html
Copyright © 2020-2023  润新知