Pagini recente » Cod sursa (job #863115) | Cod sursa (job #2711055) | Cod sursa (job #540821) | Cod sursa (job #2341438) | Cod sursa (job #2686337)
#include <fstream>
#define MOD1 996637
#define BAZA1 42307
#define MOD2 943363
#define BAZA2 52103
#define MOD3 999863
#define BAZA3 952619
#define MOD4 11953
#define BAZA4 7717
#define MOD5 813559
#define BAZA5 795943
#define MOD6 777011
#define BAZA6 29363
using namespace std;
ifstream cin( "hashuri.in" );
ofstream cout( "hashuri.out" );
int f1[ MOD1 + 1 ];
int f2[ MOD2 + 1 ];
int f3[ MOD3 + 1 ];
int f4[ MOD4 + 1 ];
int f5[ MOD5 + 1 ];
int f6[ MOD6 + 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;
int nr3 = ( ( long long )x * BAZA3 ) % MOD3;
int nr4 = ( ( long long )x * BAZA4 ) % MOD4;
int nr5 = ( ( long long )x * BAZA5 ) % MOD5;
int nr6 = ( ( long long )x * BAZA6 ) % MOD6;
switch( k ){
case 1:
if( f1[ nr1 ] == 0 || f2[ nr2 ] == 0 || f3[ nr3 ] == 0 || f4[ nr4 ] == 0 || f5[ nr5 ] == 0 || f6[ nr6 ] == 0 )
++f1[ nr1 ],
++f2[ nr2 ],
++f3[ nr3 ],
++f4[ nr4 ],
++f5[ nr5 ],
++f6[ nr6 ];
break;
case 2:
if( f1[ nr1 ] != 0 && f2[ nr2 ] != 0 && f3[ nr3 ] != 0 && f4[ nr4 ] != 0 && f5[ nr5 ] != 0 && f6[ nr6 ] != 0 )
--f1[ nr1 ],
--f2[ nr2 ],
--f3[ nr3 ],
--f4[ nr4 ],
--f5[ nr5 ],
--f6[ nr6 ];
break;
case 3:
if( f1[ nr1 ] != 0 && f2[ nr2 ] != 0 && f3[ nr3 ] != 0 && f4[ nr4 ] != 0 && f5[ nr5 ] != 0 && f6[ nr6 ] != 0 )
cout << "1\n";
else cout << "0\n";
break;
}
}
return 0;
}