Cod sursa(job #1496535)

Utilizator ZeBuGgErCasapu Andreas ZeBuGgEr Data 5 octombrie 2015 09:27:15
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 2.82 kb
#include<stdio.h>

FILE *fin,*fout;

int a[1000039],n,x,y,v;
bool b;

int hashuire(int i)
{
    return (i%1000039);
}

int main()
{
    fin=fopen("hashuri.in","r");
    fout=fopen("hashuri.out","w");

    fscanf(fin,"%d",&n);
    for(int i=1;i<=n;i++)
    {
        fscanf(fin,"%d %d",&x,&y);
        b=0;
        if(x==1)
        {
            v=hashuire(y);
            for(int j=v;j<1000039;j++)
            {
                if(a[j]<1||a[j]==y)
                {
                    a[j]=y;
                    b=1;
                    break;
                }
            }
            if(b==0)
            {
                for(int j=0;j<v;j++)
                {
                    if(a[j]<1||a[j]==y)
                    {
                        a[j]=y;
                        b=1;
                        break;
                    }
                }
            }
        }
        else if(x==2)
        {
            v=hashuire(y);
            for(int j=v;j<1000039;j++)
            {
                if(a[j]==y)
                {
                    a[j]=-1;
                    b=1;
                    break;
                }
                else if(a[j]==0)
                {
                    b=1;
                    break;
                }
            }
            if(b==0)
            {
                for(int j=0;j<v;j++)
                {
                    if(a[j]==y)
                    {
                        a[j]=-1;
                        b=1;
                        break;
                    }
                    else if(a[j]==0)
                    {
                        b=1;
                        break;
                    }
                }
            }
        }
        else
        {
            v=hashuire(y);
            for(int j=v;j<1000039;j++)
            {
                if(a[j]==y)
                {
                    fprintf(fout,"1\n");
                    b=1;
                    break;
                }
                else if(a[j]==0)
                {
                    fprintf(fout,"0\n");
                    b=1;
                    break;
                }
            }
            if(b==0)
            {
                for(int j=0;j<v;j++)
                {
                    if(a[j]==y)
                    {
                        fprintf(fout,"1\n");
                        b=1;
                        break;
                    }
                    else if(a[j]==0)
                    {
                        fprintf(fout,"0\n");
                        b=1;
                        break;
                    }
                }
                if(b==0)
                {
                    fprintf(fout,"0\n");
                }
            }
        }
    }
}