Pagini recente » Cod sursa (job #2949661) | Cod sursa (job #1026159) | Cod sursa (job #1105504) | Cod sursa (job #2706937) | Cod sursa (job #2099516)
#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;
}