Pagini recente » Cod sursa (job #1833362) | Cod sursa (job #1338338) | Cod sursa (job #558296) | Cod sursa (job #299860) | Cod sursa (job #580775)
Cod sursa(job #580775)
#include <stdio.h>
#include <string.h>
#define maxn 2000022
char A[maxn], B[maxn];
int pi[maxn], pos[1033];
int matches;
void match()
{
int lena = strlen(A), lenb = strlen(B);
int i = 0, j = 0;
for (i = 0; i <= lenb - lena; i++)
{
j = 0;
while (j < lena && A[j] == B[i+j])
j++;
printf("%d %d %d\n", lena, j, matches);
if (j == lena)
if (matches > 1000)
matches++;
else
pos[matches++] = i;
}
}
int main()
{
FILE *fin = fopen("strmatch.in", "rt");
FILE *fout = fopen("strmatch.out", "wt");
int i = 0;
fscanf(fin, "%s\n%s", A, B);
match();
fprintf(fout, "%d\n", matches);
for (i = 0; i < ((matches > 1000) ? 1000 : matches); i++)
fprintf(fout, "%d ", pos[i]);
fclose(fin), fclose(fout);
return 0;
}