Cod sursa(job #1674799)

Utilizator martonsSoos Marton martons Data 4 aprilie 2016 21:07:52
Problema Potrivirea sirurilor Scor 38
Compilator cpp Status done
Runda Arhiva educationala Marime 0.88 kb
#include <cstdio>
#include <vector>

using namespace std;

char a[2000000], b[2000000];

int main()
{
    FILE* f=fopen("strmatch.in", "r");
    FILE* f1=fopen("strmatch.out", "w");

    fscanf(f, "%s\n%s", &a, &b);

    vector<int> v;
    vector<int> fin;
    int i=0;
    int c=0;

    while(b[i]!='\0')
    {
        for(vector<int>::iterator it= v.begin();it!=v.end();it++)
        {
            if(a[i-(*(it))]=='\0'){
                c++;
                fin.push_back(*it);
                v.erase(it);
                it--;
            }
            else if(a[i-*it]!=b[i]){
                v.erase(it);
                it--;
            }
        }
        if(b[i]==a[0])
            v.push_back(i);
        i++;
    }

    fprintf(f1, "%d\n", c<1000?c:1000);
    for(int i=0;i<c&&c<1000;i++){
        fprintf(f1, "%d ", fin[i]);
    }
    return 0;
}