Cod sursa(job #1496408)

Utilizator Andrei_PopaAndreiCDG Andrei_Popa Data 4 octombrie 2015 21:45:12
Problema Hashuri Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 1.54 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("hashuri.in");
ofstream g("hashuri.out");
int v1[1000001];
int v2[1000001];
int j1,j2;
int n;
int Existenta1(int par)
{
    int i=1;
    while(v1[i]!=par && i<=j1)
    i++;

    if(i>j1)
    return 0;
    else
    return 1;
}
int Existenta2(int par)
{
    int i=1;
    while(v2[i]!=par && i<=j2)
    i++;

    if(i>j2)
    return 0;
    else
    return 1;
}
void Adauga(int par)
{
    int t;
   if(par%2==0)
   {
       t=Existenta1(par);
       if(t==0)
       {
           j1++;
           v1[j1]=par;

       }

   }
   else
   {
       t=Existenta2(par);
       if(t==0)
       {
           j2++;
           v2[j2]=par;

       }

   }
}
void Sterge(int par)
{
   int i=1;

   if(par%2==0)
   {
       while(v1[i]!=par && i<=j1)
       i++;

       if(i<=j1)
       {
           v1[i]=v1[j1];
           j1--;

       }
   }
   else
   {
       while(v2[i]!=par && i<=j2)
       i++;

       if(i<=j2)
       {

           v2[i]=v2[j2];
           j2--;

       }

   }
}

int main()
{
    f>>n;
    int i;
    j1=0;j2=0;
    int par;
    int ind;
    for(i=1;i<=n;i++)
    {
        f>>ind>>par;

        if(ind==1)
        Adauga(par);
        else
           if(ind==2)
           Sterge(par);
           else
           {
              if(par%2==0)
              g<<Existenta1(par)<<'\n';
              else
              g<<Existenta2(par)<<'\n';
           }
    }

    return 0;
}