Cod sursa(job #1429943)

Utilizator PlatonVPlaton Vlad PlatonV Data 7 mai 2015 16:53:45
Problema Potrivirea sirurilor Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <stdio.h>
#include <vector>

using namespace std;

#define maxn 2000000

char a[maxn], b[maxn];
int k;
vector<int> r;

void read()
{
    FILE* f = fopen("strmatch.in", "r");

    fscanf(f, "%s%s", a, b);
}

void match(int i)
{
    int j = 0;
    while (a[j])
    {
        if (a[j] != b[i] || !a[j] || !b[i])
            return;
        ++j;
        ++i;
    }
    ++k;
    r.push_back(i - j);
}

int main()
{
    read();

    int i = 0;
    while (b[i])
    {
        if (b[i] == a[0])
            match(i);
        ++i;
    }

    FILE* g = fopen("strmatch.out", "w");

    fprintf(g, "%d\n", k);
    for (int i = 0; i < ( r.size() <= 1000 ? r.size() : 1000); ++i)
        fprintf(g, "%d ", r[i]);

    return 0;
}