Cod sursa(job #1059103)

Utilizator 3nTRoPYiorga dan 3nTRoPY Data 16 decembrie 2013 09:51:33
Problema Hashuri Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.2 kb
#include <fstream>
#include <iostream>
#include <utility>
#include <list>

using namespace std;

struct linie
{
 			 list <short> col;
			 linie *next;
}*p;

void ad(int x)
{
 		 int i;
 		 int lin=x/1000+1;
 		 linie *t=p, *ad;
 		 for(i=0;i<lin;i++)
 		 {
			 if(t->next==NULL)
			 {
			    ad=new linie;
			    ad->next=NULL;
			    t->next=ad;
       }
       t=t->next;
     }
     t->col.push_front(x%1000);
}
			    
void st(int x)
{
 		 linie *t=p;
 		 int i, lin=x/1000+1;
 		 for(i=0;i<lin;i++)
			 t=t->next;
		 t->col.erase(find(t->col.begin(), t->col.end(), x%1000));
}

int search(int x)
{
 		int lin=x/1000+1, i;
 		linie *t=p;
 		for(i=0;i<lin;i++)
 		   t=t->next;
 		if(find(t->col.begin(), t->col.end(), x%1000) == t->col.end())
 		   return 0;
    return 1;
}

int main(int argc, char *argv[])
{
 		int n, op, x, i;
 		p=new linie;
 		p->next=NULL;
 		ifstream fin("hashuri.in");
 		ofstream fout("hashuri.out");
 		fin>>n;
 		for(i=0;i<n;i++)
 		{
			  fin>>op>>x;
			  if(op==1)
			     ad(x);
        else if(op==2)
           st(x);
        else
           fout<<search(x)<<endl;
    }
    return 0;
}