Pagini recente » Cod sursa (job #426312) | Cod sursa (job #178646) | Cod sursa (job #1242132) | Cod sursa (job #2542768) | Cod sursa (job #2741860)
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
using namespace std;
using namespace __gnu_pbds;
class inParser
{
private:
FILE *in;
const int sz = (1 << 16);
char buffer[(1 << 16)];
int index;
__attribute__((always_inline)) char getCh()
{
if(index == sz)
fread(buffer, 1, sz, in), index = 0;
return buffer[index++];
}
public:
inParser(const char* name)
{
in = fopen(name, "r");
index = sz;
}
char getTag()
{
int ch = getCh();
getCh();
return ch;
}
int getNum()
{
int ret = 0;
for(char ch = getCh(); '0' <= ch && ch <= '9'; ch = getCh())
ret = ret * 10 + ch - '0';
return ret;
}
};
int main()
{
inParser in("hashuri.in");
int n; n = in.getNum();
gp_hash_table<int, null_type> s({}, {}, {}, {}, {1 << 20});
char outBuffer[(1 << 20)];
int index = 0;
for(int i = 0; i < n; i++)
{
char q = in.getTag();
int x = in.getNum();
switch(q)
{
case '1':
s.insert(x);
break;
case '2':
if(s.find(x) != s.end())
s.erase(x);
break;
default:
if(s.find(x) != s.end())
outBuffer[index++] = '1';
else
outBuffer[index++] = '0';
outBuffer[index++] = '\n';
}
}
FILE *out = fopen("hashuri.out", "w");
fwrite(outBuffer, 1, index, out);
}