Cod sursa(job #2216856)

Utilizator eudanipEugenie Daniel Posdarascu eudanip Data 28 iunie 2018 10:31:48
Problema Potrivirea sirurilor Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include<stdio.h>
#include<string.h>

#define NMAX 2000005

char s[NMAX], p[NMAX];
int answers[NMAX], ans, n, m;

int main () {

    freopen("strmatch.in","r",stdin);
    freopen("strmatch.out","w",stdout);

    scanf("%s", p + 1); m = strlen(p + 1);
    scanf("%s", s + 1); n = strlen(s + 1);

    for(int i = 1; i <= n - m + 1 && ans <= 1000; i++) {
        int ok = 1;
        for(int j = i; j <= i + m - 1; j++) {
            if(s[j] != p[j - i + 1]){
                ok = 0;
                break;
            }
        }
        if(ok)
            answers[++ans] = i;
    }
    printf("%d\n", ans);
    for(int i = 1; i <= ans; i++) {
        printf("%d ", answers[i] - 1);
    }
    printf("\n");

    return 0;
}