Cod sursa(job #2099516)

Utilizator Andreiii500Andrei Puiu Andreiii500 Data 4 ianuarie 2018 14:43:58
Problema Abc2 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.36 kb
#include<iostream>
#include<fstream>
#include<unordered_map>
#include<cstring>
using namespace std;

ifstream in("abc2.in");
ofstream out("abc2.out");

const int N = 5000002;
const int M = 50002;
int n,m;

int main()
{
    /// Variables
    unordered_map<string, int> fcv;
    char c = 0;

    /// Skip first input line
    while(c != '\n')
    {
        in.get(c);
        ///cout<<c;
    }

    /// Read words
    char cuv[M];
    m = 0;
    while(in.getline(cuv, M))
    {
        fcv[cuv] = 1;
        if(!m)
            m = strlen(cuv);
    }

    ///
    string s;
    in.clear();
    in.seekg(0, ios::beg);

    int i = 0;
    int sol = 0;
    in.get(c);
    while(c != '\n')
    {
        s.push_back(c);

        if(i >= m-1)
        {
            ///cout<<s<<"\n";
            ///cout<<fcv[s]<<"\n";
            sol += fcv[s];
            s.erase(0, 1);
        }

        ///cout<<"i = "<<i<<"\n";
        ++i;
        in.get(c);
    }

    out<<sol<<"\n";

    ///cout<<sir<<"\n\n";
    /*int sol = 0;
    for(int i=m-1; i<n; ++i){
        char aux = sir[i+1];
        sir[i+1] = 0;
        sol += fcv[sir + i - m + 1];
        ///cout<<fcv[sir + i - m + 1]<<"    ";
        ///cout<<"sol = "<<sol<<"\n";
        sir[i - m + 1] = 0;
        sir[i+1] = aux;
    }*/

    //out<<sol;

    return 0;
}