Pagini recente » Clasament dupa rating | Monitorul de evaluare | Diferente pentru warm-up-2019/solutii/shoturi intre reviziile 99 si 92 | Monitorul de evaluare | Cod sursa (job #1488052)
#include <bits/stdc++.h>
using namespace std;
vector<int> H[666013];
vector<int>::iterator caut(int who) {
vector<int>::iterator it;
int r = who % 666013;
for(it = H[r].begin(); it != H[r].end(); it ++) {
if(*it == who)
return it;
}
return H[r].end();
}
int main()
{
FILE *f = fopen("hashuri.in", "r");
FILE *g = fopen("hashuri.out", "w");
int n, op, x;
fscanf(f, "%d", &n);
while(n) {
fscanf(f, "%d %d", &op, &x);
int r = x % 666013;
vector<int>::iterator rez = caut(x);
if(op == 1) {
if(rez == H[r].end())
H[r].push_back(x);
}
else if(op == 2) {
if(rez != H[r].end()) {
vector<int>::iterator it = rez;
for(; it != H[r].end(); it ++) {
*it = *(it + 1);
}
H[r].erase(H[r].end() - 1);
}
}
else {
if(rez != H[r]. end())
fprintf(g, "1\n");
else fprintf(g, "0\n");
}
n --;
}
return 0;
}