Cod sursa(job #98358)

Utilizator flo_demonBunau Florin flo_demon Data 10 noiembrie 2007 12:49:27
Problema Abc2 Scor 0
Compilator cpp Status done
Runda Happy Coding 2007 Marime 1.13 kb
#include <stdio.h>
#include <deque>
#include <set>
#include <string>

using namespace std;

#define MAX 10000005
#define MAXC 20

char a[MAX];
char auxc[MAXC];
deque<char> candidat, auxd;
set<deque<char> > cuv;
set<deque<char> >::iterator start, end;
int rez;

int main()
{
    int cuv_l = 0, text_l = 0;
    FILE *fin = fopen("abc2.in", "r");
    fscanf(fin, "%s", a);
    while (fscanf(fin, "%s", auxc) > 0)
    {
        auxd.clear();
        for (int i = 0; i < strlen(auxc); ++i)
            auxd.push_back(auxc[i]);
        cuv.insert(auxd);
    }
    fclose(fin);
    
    start = cuv.begin();
    auxd = (*start);
    cuv_l = auxd.size();
    text_l = strlen(a);

    candidat.clear();
    for (int i = 0; i < cuv_l; ++i)
        candidat.push_back(a[i]);
    if (cuv.count(candidat) > 0)
        rez++;
    for (int i = cuv_l; i < text_l; ++i)
    {
        candidat.pop_front();
        candidat.push_back(a[i]);
        if (cuv.count(candidat) > 0)
            rez++;
    }
    
    FILE *fout = fopen("abc2.out", "w");
    fprintf(fout, "%d\n", rez);
    fclose(fout);
    
    return 0;
}