Mai intai trebuie sa te autentifici.
Cod sursa(job #2605275)
| Utilizator | Data | 24 aprilie 2020 18:05:54 | |
|---|---|---|---|
| Problema | Potrivirea sirurilor | Scor | 80 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.88 kb |
#include <stdio.h>
#include <malloc.h>
#include <cstring>
using namespace std;
int main() {
FILE* fin = fopen("strmatch.in", "rt");
FILE* fout = fopen("strmatch.out", "wt");
int counter = 0;
char* A = (char*) malloc(2000000);
char* B = (char*) malloc(2000000);
int v[1000];
int k = 0;
int ok;
fscanf(fin ,"%s", A);
fscanf(fin ,"%s", B);
int len1 = strlen(A);
int len2 = strlen(B);
for (int i = 0;i <= len2 - len1;i ++) {
ok = 1;
for (int k = i;k <= len1 + i - 1;k ++)
if (A[k - i] != B[k]) {
ok = 0;
break;
}
if (ok) {
counter ++;
if (k < 1000)
v[k ++] = i;
}
}
fprintf(fout, "%d\n", counter);
for (int i = 0;i < k;i ++)
fprintf(fout, "%d ",v[i]);
free(A);
free(B);
fclose(fin);
fclose(fout);
return 0;
}
