2017年PTA乙级春考D题微博转发抽奖 分数 20 题型:字符串

108 阅读1分钟

PTA | 程序设计类实验辅助教学平台 (pintia.cn)

#include<iostream>
#include<map>
#include<string>
#include<vector>
using namespace std;

int main()
{
    int n,m,s;cin>>m>>n>>s;
    map<string,int> mapp;
    vector<string>v;
    v.push_back(" ");//编号从1开始
    for(int i=0;i<m;++i)
    {
        string temp;cin>>temp;
        v.push_back(temp);
    }

    if(m<s)
    {
        cout<<"Keep going..."<<endl;
        return 0;
    }
    else
    {
        for(int i=s;i<=m;i+=n)
        {
            while(mapp[v[i]]>=1)
            {
                i++;  //重复获奖的 取下一位
            }
            mapp[v[i]]++; //读取到mapp[]里面
            cout<<v[i]<<endl; 
        }
    }
    return 0;
}

二刷

解析:69_哔哩哔哩_bilibili

#include<bits/stdc++.h>
using  namespace std;

vector<string>v;
map<string,int>m;
int main(){

    int n,k,first;cin>>n>>k>>first;

     string s[1005];
    for(int i=1;i<=n;i++)cin>>s[i];

    if(n<first){cout<<"Keep going...";return 0;}
    else
    {
        for(int i=first;i<=n;)
        {
            if(!m[s[i]])
            {
                cout<<s[i]<<endl;
                m[s[i]]++;
                i+=k;
            }
            else i++;
        }
    }
    return 0;
}