Mai intai trebuie sa te autentifici.

Cod sursa(job #2605275)

Utilizator michael_blazemihai mihai michael_blaze 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;

}