Pagini recente » Cod sursa (job #2052833) | Cod sursa (job #125959) | Cod sursa (job #1504385) | Cod sursa (job #121107) | Cod sursa (job #1053934)
#include <fstream>
#include <map>
#include <vector>
#include <algorithm>
#include <functional>
#include <string>
using namespace std;
void update(vector<int> &cnt, const string &s) {
for (const char &c : s) {
cnt[c - 'a']++;
}
}
int main()
{
ifstream cin("matrix.in");
ofstream cout("matrix.out");
int M, N;
cin >> M >> N;
cin.get();
string str;
vector<int> aCnt(26,0), bCnt(26, 0);
for (int i = 0; i < M; i++) {
getline(cin, str);
update(aCnt, str);
}
for (int i = 0; i < N; i++) {
getline(cin, str);
update(bCnt, str);
}
bool match = true;
for (int i = 0; i < 26; i++) {
if (bCnt[i] > aCnt[i]) {
match = false;
}
}
cout << (match ? (M - N + 1) * (M - N + 1) : 0);
return 0;
}