Cod sursa(job #3199755)

Utilizator MilitaruMihaiMihaiMIlitaru MilitaruMihai Data 2 februarie 2024 16:55:53
Problema Hashuri Scor 30
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.87 kb
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
ifstream fin("hashuri.in");
ofstream fout("hashuri.out");
const int mod=1e5+3,p=33,mod2=1e5+21,p2=73;
int k,f1[100005],f2[100005],n;
char c[15];
int has(char s[])
{
    int hs=0;
    for (int i=0;i<strlen(s);i++)
    {
        hs=hs*p+s[i]-'0';
        hs%=mod;
    }
    return hs;
}
int has2(char s[])
{
    int hs=0;
    for (int i=0;i<strlen(s);i++)
    {
        hs=hs*p2+s[i]-'0';
        hs%=mod2;
    }
    return hs;
}
int main()
{
    fin>>n;
    for (int i=1;i<=n;i++)
    {
        fin>>k>>c;
        int v=has(c);
        int v2=has2(c);
        if (k==1) f1[v]=1,f2[v2]=1;
        else if (k==2) f1[v]=0,f2[v2]=0;
        else
        {
            if (f1[v]==1 && f2[v2]==1) fout<<1<<'\n';
            else fout<<0<<'\n';
        }
    }
    return 0;
}