Cod sursa(job #2686320)

Utilizator andrei_marciucMarciuc Andrei andrei_marciuc Data 18 decembrie 2020 21:35:48
Problema Hashuri Scor 30
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.98 kb
#include <fstream>
#define MOD1 996637
#define BAZA1 42307
#define MOD2 943363
#define BAZA2 52103
using namespace std;
ifstream cin( "hashuri.in" );
ofstream cout( "hashuri.out" );
int f1[ MOD1 + 1 ];
int f2[ MOD2 + 1 ];

int main()
{
    int n, k, x;
    cin >> n;
    while( n-- ){
        cin >> k >> x;
        int nr1 = ( ( long long )x * BAZA1 ) % MOD1;
        int nr2 = ( ( long long )x * BAZA2 ) % MOD2;
        switch( k ){
            case 1:
                if( f1[ nr1 ] == 0 || f2[ nr2 ] == 0 )
                    ++f1[ nr1 ],
                    ++f2[ nr2 ];
                break;
            case 2:
                if( f1[ nr1 ] != 0 && f2[ nr2 ] != 0 )
                    --f1[ nr1 ],
                    --f2[ nr2 ];
                break;
            case 3:
                if( f1[ nr1 ] != 0 && f2[ nr2 ] != 0 )
                    cout << "1\n";
                else cout << "0\n";
                break;
        }
    }
    return 0;
}