Cod sursa(job #255207)

Utilizator perticas_catalinperticas catalin perticas_catalin Data 8 februarie 2009 20:24:23
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
#include<stdio.h>
#include<vector>
using namespace std;
FILE*fin=fopen("hashuri.in","r");
FILE*fout=fopen("hashuri.out","w");
#define p 666013
int n;
vector<int> str[p];
vector<int>::iterator find(int x)
{
  vector<int>::iterator i;
  int loc=x%p;
  for(i=str[loc].begin();i!=str[loc].end();i++)
    if(*i==x) return i;
  return str[loc].end();
}
void add(int x)
{
  int loc=x%p;
  if(find(x)==str[loc].end()) str[loc].push_back(x);
}
void del(int x)
{
  int loc=x%p;
  vector<int>::iterator i=find(x);
  if(i!=str[loc].end()) str[loc].erase(i);
}
int main()
{
  int op,x,i;
  fscanf(fin,"%d",&n);
  for(i=1;i<=n;i++)
  {
    fscanf(fin,"%d%d",&op,&x);
    if(op==1) add(x);
    if(op==2) del(x);
    if(op==3) if(find(x)!=str[x%p].end()) fprintf(fout,"1\n");
	      else fprintf(fout,"0\n");
  }
  fclose(fin);
  fclose(fout);
  return 0;
}