Cod sursa(job #798154)

Utilizator dutzulBodnariuc Dan Alexandru dutzul Data 15 octombrie 2012 20:43:43
Problema Abc2 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.34 kb
#include <fstream>
#include <vector>
#include <string>
using namespace std;
ifstream f("abc2.in");
ofstream g("abc2.out");
#define LE  5060
#define MOD 66013
string sir;
string cuv[LE];
int  num[LE];
vector<int> H[MOD+66];
void Push(int value)
{
    int R=value%MOD;
    H[R].push_back(value);
}
#define ll long long
int find(ll value)
{
    ll R=value%MOD;
    ll N=H[R].size();

    for(ll I=0; I<N; ++I)
        if (H[R][I]==value)
            return true;

    return false;
}

int K,n,i,j;
int Div;
int val;


int main()
{
    f>>sir;

    while (f>>cuv[++K]);
    K--;

    int m=cuv[1].length();

    for(i=1; i<=K; ++i)
    {
        for(j=0; j<m; ++j)
        {
            num[i]=num[i]*3;


            if(cuv[i][j]=='b')
                num[i]++;

            if (cuv[i][j]=='c')
                num[i]+=2;
        }
        if (find(num[i])==false)
           val=1;
    }
/*
    int n=sir.length();

    Div=1;

    for(i=1; i<m; ++i)
        Div*=3;
    int sol=0;
/* for(i=0; i<m; ++i)
            val=val*3+(sir[i]-'a');


    if (find(val)==true)
        ++sol;
/*
    for(i=m; i<n; ++i)
    {
        val=(val-(sir[i-m]-'a')*Div)*3+(sir[i]-'a');
        if (find(val)==true)
            ++sol;
    }
    */
//g<<sol<<'\n';
    f.close();
    g.close();
    return 0;
}