PAT B1069 Weibo Repost Lottery (20 puntos)

Inserte la descripción de la imagen aquí
Simplemente simule de acuerdo con el significado de la pregunta, y el mapa se puede usar para almacenar si el nombre ganó o no.

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

int main(){
    
    
	int m, n, s;
	scanf("%d %d %d", &m, &n, &s);
	map<string,int> ma;
	string str;
	int ans;
	int flag = 0;
	for(int i=1; i<=m; i++){
    
    
		cin >> str;
		if(i == s){
    
    
			cout << str << endl;
			flag = 1;
			ma[str]++;
			ans = 0;
		}
		if(i > s){
    
    
			ans++;
			if(ans % n == 0){
    
    
				if(ma[str] != 0){
    
    
					ans--;
					continue;
				}else{
    
    
					cout << str << endl;
					ma[str]++;
				}
			}
		}
	}
	
	if(!flag){
    
    
		printf("Keep going...");
	}
	
	return 0;
} 

Supongo que te gusta

Origin blog.csdn.net/weixin_45964844/article/details/113852779
Recomendado
Clasificación