Pagini recente » Cod sursa (job #2608136) | Cod sursa (job #2590923) | Cod sursa (job #2076922) | Cod sursa (job #978640) | Cod sursa (job #98358)
Cod sursa(job #98358)
#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;
}