Pagini recente » Cod sursa (job #2348452) | Cod sursa (job #2979026) | Cod sursa (job #2942027) | Cod sursa (job #375864) | Cod sursa (job #98371)
Cod sursa(job #98371)
#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 = -1, text_l = -1;
FILE *fin = fopen("abc2.in", "r");
fscanf(fin, "%s", a);
text_l = strlen(a);
while (fscanf(fin, "%s", auxc) > 0)
{
if (auxd.size() == 0)
auxd.resize(strlen(auxc));
if (cuv_l == -1)
cuv_l = strlen(auxc);
for (int i = 0; i < cuv_l; ++i)
auxd[i] = auxc[i];
cuv.insert(auxd);
}
fclose(fin);
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;
}