Establecer código

Hay un conjunto de enteros (se permiten elementos repetidos), que inicialmente está vacío. Definimos las siguientes operaciones:
agregar x agrega  x al conjunto
del x  elimina todos los elementos en el conjunto igualx preguntar x para preguntar sobre el elemento x en el conjunto

Para cada operación, requerimos el siguiente resultado.
Después de la recogida complemento operación de salida  x número de
serie antes de la operación de salida del  x  número de
pedir a la salida  0  o  1  indica  x  nunca han añadido a la colección ( 0 nunca se indica en el original), y luego las salidas del conjunto actual de  x  número, Usa un espacio en el medio.

Formato de entrada

La primera línea es un número entero  n, que indica el número de comandos. 0 n 1 0 0 0 0 0. Las siguientes  n n líneas de comandos se describen en  Descripción.

Formato de salida

Hay n  líneas en total  , y cada línea se emite según sea necesario.

El espacio extra al final de cada línea cuando sale, no afecta la exactitud de la respuesta.

Entrada de muestra

7 
agregar 1 
agregar 1 
preguntar 1 
preguntar 2 
del 2 
del 1 
preguntar 1

Salida de muestra

1 
2 
1 2 
0 0 
0 
2 
1 0

 

#include <iostream> 
#include < set > 
#include <iterator>
 usando el  espacio de nombres std; 

int main () 
{ 
    int n; 
    cin >> n;
    comando char [ 4 ]; 
    multiset < int > mset;
    establecer < int > mm; 
    multiset < int > :: iterador;
    int num;
    para ( int i = 0 ; i <n; i ++ ) 
    {
        cin >> comando >> num;
        switch (comando [ 1 ]) 
        { 
        case  ' d ' : 
            mset.insert (num); 
            mm.insert (num); 
            cout << mset.count (num) << endl;
            romper ;
        case  ' e ' : 
            cout << mset.count (num) << endl; 
            mset.erase (num); 
            romper ;
        case  ' s ' :
         // find (clave); //Encuentre si la clave existe, si existe, devuelva el iterador del elemento de la clave; si no, devuelva set.end (); 
            if (mm.find (num) == mm.end ()) 
            { 
                cout << " 0 0 " << endl; 
            } else 
            { 
                cout << " 1 " << mset.count (num) << endl; 
            } 
            break ;
         predeterminado :
             break ; 
        } 
    } 
}

 

Supongo que te gusta

Origin www.cnblogs.com/BlairGrowing/p/12709635.html
Recomendado
Clasificación