有没有佬帮我看看为什么tle啊
#include<bits/stdc++.h>
using namespace std;
unordered_map<char,int> mp;
int n,m,sum,i;
char s[11],c[1];
bool f;
int main()
{
int t = 1;
scanf("%d",&t);
while(t--)
{
mp.clear();
scanf("%d",&n);
getchar();
sum = n;
while(n--)
{
scanf("%s",c);
mp[c[0]]++;
}
scanf("%d",&m);
getchar();
f = 0;
while(m--)
{
scanf("%s",s);
int l = strlen(s);
for(i = 0;i < l;i++)
{
mp[s[i]]--;
if(s[i] != 'O')
sum--;
if(mp[s[i]] < 0 && s[i] != 'O')
{
f = 1;
break;
}
}
if(f)
break;
}
if(sum + mp['O'] < 0)
f = 1;
if(!f)
printf("YES\n");
else
printf("NO\n");
}
return 0;
}