Competencia de idiomas PAT Nivel B-C

Descripción del tema El
concurso de lenguaje C es un concurso alegre organizado por la Facultad de Ciencias de la Computación de la Universidad de Zhejiang.

Dado que el tema del concurso es divertido, las reglas de adjudicación también son muy divertidas:

  • El campeón ganará un "premio misterioso" (como una gran colección de trabajos de investigación de estudiantes ...).
  • Los estudiantes que se clasifiquen en números primos ganarán el mejor premio: ¡muñecos Minions!
  • Otros obtendrán chocolate.

Dada la clasificación final de la competencia y una serie de identificaciones de participantes, debe entregar los premios que deben recibir estos participantes.

Formato de entrada La
primera línea de entrada da un número entero positivo N, que es el número de participantes.
Las siguientes N filas dan la clasificación final, y cada fila proporciona la identificación de un concursante (4 dígitos) en el orden de clasificación.
A continuación, se dan un número entero positivo de K y K ID que se van a consultar.

Formato de
salida, salida en fila para cada ID a consultar ID:premios,

  • Los premios son Mystery Award(Premio Misterioso), Minion(Minions) o Chocolate(Chocolate).
  • Si el ID que está buscando no está en el ranking, imprímalo Are you kidding?(¿qué me pasa?).
  • Si se ha comprobado la identificación (es decir, el premio ya ha sido recibido), imprímalo ID: Checked(no se puede comer más y coger más).

Ejemplo de entrada
6
1111
6666
8888
1234
5555
0001
6
8888
0001
1111
2222
8888
2222

输出 样例
8888: Minion
0001: Chocolate
1111: Mystery Award
2222: ¿Estás bromeando?
8888: marcado
2222: ¿estás bromeando?

Rango de datos
N ≤ 10. 4



Matemáticas de solución de problemas :

#include <iostream>
#include <unordered_map>
using namespace std;

const int N = 10010;

int n, m;
string id;
unordered_map<string, int> Hash;
unordered_map<string, bool> used;

bool check(int x)
{
    
    
    for (int i = 2; i <= x / i; i ++)
        if(x % i == 0) return false;
    return true;    
}

int main()
{
    
    
    cin >> n;
    for (int i = 1; i <= n; i ++)
    {
    
    
        cin >> id;
        Hash[id] = i;
    }
    
    cin >> m;
    for (int i = 1; i <= m; i ++)
    {
    
    
        cin >> id;
        
        cout << id << ": ";
        if(!Hash.count(id)) cout << "Are you kidding?" << endl;
        else if(used[id]) cout << "Checked" << endl;
        else if(Hash[id] == 1) cout<< "Mystery Award" << endl;
        else if(check(Hash[id])) cout << "Minion" << endl;
        else cout << "Chocolate" << endl;
        
        used[id] = true;
    }
    
    return 0;
}

Supongo que te gusta

Origin blog.csdn.net/weixin_46239370/article/details/113882363
Recomendado
Clasificación