Cod sursa(job #2373301)

Utilizator toadehuPuscasu Razvan Stefan toadehu Data 7 martie 2019 13:02:19
Problema Hashuri Scor 30
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.3 kb
#include <bits/stdc++.h>

using namespace std;

struct unomap
{
    vector <int> elem;
}v[2020];

int n;

int haesh (int nr)
{
    int mod=2017,ans=0;
   while (nr)
   {
       ans=ans*nr%10+nr%10;
       ans=ans%mod;
       nr/=10;
   }
   return ans;
}

void add (int nr,int val)
{
    for (int i=0;i<v[nr].elem.size();++i)
    {
        if (v[nr].elem.at(i)==val)
        {
            return;
        }
    }
    v[nr].elem.push_back(val);
}

void dell (int nr,int val)
{
    for (int i=0;i<v[nr].elem.size();++i)
    {
        if (v[nr].elem.at(i)==val)
        {
            v[nr].elem.erase(v[nr].elem.begin()+i);
            return;
        }
    }
}

bool findd (int nr,int val)
{
    for (int i=0;i<v[nr].elem.size();++i)
    {
        if (v[nr].elem.at(i)==val)
        {
            return 1;
        }
    }
    return 0;
}

int main()
{
    ifstream fin ("hashuri.in");
    ofstream fout ("hashuri.out");
    fin>>n;
    for (int i=1;i<=n;++i)
    {
        int p,nr;
        fin>>p>>nr;
        if (p==1)
        {
            add(haesh(nr),nr);
        }
        if (p==2)
        {
            dell(haesh(nr),nr);
        }
        if (p==3)
        {
            fout<<findd(haesh(nr),nr)<<"\n";;
        }
    }
    return 0;
}