Cod sursa(job #1049466)

Utilizator thewildnathNathan Wildenberg thewildnath Data 7 decembrie 2013 13:01:48
Problema Dtcsu Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.2 kb
#include<stdio.h>
#include<string.h>
#include<vector>
using namespace std;

#define MOD 66703
#define MOD2 66013

char c[20];
long long a,list,val;
vector <long long> v[MOD+2];


inline void numar();


inline bool find()
{
    int i;
    for(i=0;i<v[list].size();++i)
        if(v[list][i]==val)
            return 1;
    return 0;
}

inline void insert()
{
    if(!find())
        v[list].push_back(val);
}


int main()
{
    freopen("dtcsu.in","r",stdin);
    freopen("dtcsu.out","w",stdout);
    int n=276997,m,i,sol=0;

    for(i=1;i<=n;++i)
    {
        memset(c,0,sizeof(c));
        scanf("%s\n",&c);
        numar();

        list=a%MOD;
        val=a%MOD2;
        insert();
    }

    scanf("%d\n",&m);
    for(i=1;i<=m;++i)
    {
        memset(c,0,sizeof(c));
        scanf("%s\n",&c);
        numar();

        list=a%MOD;
        val=a%MOD2;
        sol+=find();
    }

    printf("%d\n",sol);

    return 0;
}

inline void numar()
{
    int i=0,x;
    a=0;
    while(c[i]<'0'||c[i]>'9')
        ++i;
    while(c[i]>='0'&&c[i]<='9')
    {
        x=c[i]-'0';
        a=a*10+(long long)x;
        ++i;
    }

    a/=(a&(-a));

}