Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <iostream>
- #include <map>
- #include <cstdlib>
- #include <cstdio>
- #include <fstream>
- #include <set>
- #include <unordered_set>
- #include <unordered_map>
- #include <string>
- #include <random>
- #include <string>
- #include <algorithm>
- #include <iomanip>
- #include <stack>
- #include <queue>
- #include <deque>
- #include <cmath>
- #define sz(v) ((int)(v).size())
- #define int long long
- #define all(a) (a).begin(), (a).end()
- #define pii pair<int, int>
- using namespace std;
- void solve() {
- int n;
- cin >> n;
- map <string, vector<string>> mp;
- for(int i =0;i < n;i++){
- string s;
- cin >> s;
- string pattern="";
- for(int u = 0;u < (int)s.size();u++){
- if(s[u] >= 'A' && s[u] <= 'Z'){
- char x = s[u] - 'A' + 'a';
- pattern += x;
- }
- else{
- pattern += s[u];
- }
- }
- if(mp.find(pattern) != mp.end()){
- mp[pattern].push_back(s);
- }
- else{
- mp[pattern] = vector<string>(1, s);
- }
- }
- string s;
- getline(cin, s);
- getline(cin, s);
- string temp = "";
- int cnt = 0;
- int all = 0;
- for(int i =0;i < s.size() +1;i++){
- if(i != s.size() && ((s[i] >= 'a' && s[i] <= 'z') || (s[i] >= 'A' && s[i] <= 'Z'))) {
- temp += s[i];
- if(s[i] <= 'Z' && s[i] >= 'A') cnt++;
- }
- else{
- if (temp.empty()) {
- cnt = 0;
- continue;
- }
- string check = "";
- char a;
- for(int u = 0;u < temp.size();u++){
- if(temp[u] <= 'Z' && temp[u] >= 'A'){
- char x = temp[u] - 'A' + 'a';
- check += x;
- a = x;
- }
- else{
- check += temp[u];
- }
- }
- if(mp.find(check) != mp.end()){
- if(!mp[check].empty() && find(mp[check].begin(), mp[check].end(), temp) == mp[check].end()){
- all+=1;
- }
- }
- else{
- if(cnt != 1){
- all += 1;
- }
- }
- temp="";
- cnt = 0;
- }
- }
- cout << all << endl;
- }
- signed main()
- {
- ios::sync_with_stdio(false);
- cin.tie(0);
- cout.tie(0);
- int m = 1;
- //cin >> m;
- while (m--)
- {
- solve();
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment