⬆︎
×

[PAT-A] 1124 Raffle for Weibo Followers

Hyplus目录

Java

import java.io.*;
import java.util.*;

public class Main {
    static final int INF = 0x3f3f3f3f;

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String[] line = br.readLine().split(" ");

        int n = Integer.parseInt(line[0]);  // 总人数
        int k = Integer.parseInt(line[1]);  // 等待
        int S = Integer.parseInt(line[2]);  // Start

        Set<String> set = new HashSet<>();
        boolean flag = false;
        int cnt = INF;

        for (int i = 1; i <= n; i++) {
            String s = br.readLine();

            if (i == S) {
                System.out.println(s);
                flag = true;
                set.add(s);
                cnt = 0;
                continue;
            }

            if (!set.contains(s)) {
                cnt++;
            }
            if (cnt == k) {
                System.out.println(s);
                set.add(s);
                cnt = 0;
            }
        }

        if (!flag) {
            System.out.println("Keep going...");
        }

        br.close();
    }
}

C++

#include <iostream>
#include <cstring>
#include <algorithm>
#include <unordered_set>

using namespace std;

const int INF = 0x3f3f3f3f;

int n, k, S;    // 总人数、等待、Start
unordered_set <string> st;
bool flag = false;

int main() {
    scanf("%d%d%d", &n, &k, &S);

    string s;
    int cnt = INF;
    for (int i = 1; i <= n; ++i) {
        cin >> s;

        if (i == S) {
            cout << s << endl;
            flag = true;
            st.insert(s);
            cnt = 0;
            continue;
        }

        if (!st.count(s)) cnt++;
        if (cnt == k) {
            cout << s << endl;
            st.insert(s);
            cnt = 0;
        }
    }

    if (!flag) printf("Keep going...\n");

    return 0;
}

发表评论