Usaco Problem link: Problem 2. Block Game
#pragma GCC optimize(“Ofast”)
#pragma GCC target(“avx,avx2,fma”)
#pragma GCC optimization(“unroll-loops”)
#include<bits/stdc++.h>
#define speed ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
#define endl “\n”
#define pb push_back
#define reset(a) memset(a,0,sizeof a)
#define gcd(a,b) __gcd((a),(b))
#define lcm(a,b) (a/gcd(a,b)*b)
#define abs(a) (a<0?-(a):a)
#define pi acos(-1.0)
#define kkk(a) if(a)cout<<“Yes\n”; else cout<<“No\n”
using namespace std;
typedef long long int ll;
typedef pair<int,int> pii;
const int inf=2e9+7;
const int mxN=3000000;
const int mod=1e9+7;
//cout<<"Case “<<cas++<<”: "<<
//freopen(“input.txt”,“r”,stdin);
int dir1[]={1,1,1,0,0,-1,-1,-1};
int dir2[]={1,0,-1,1,-1,1,0,-1};
void setIO(string name)
{
freopen((name+".in").c_str(),“r”,stdin);
freopen((name+".out").c_str(),“w”,stdout);
}
int main()
{
setIO(“blocks”);
int n,i;
cin>>n;
int ans[30];
reset(ans);
while(n--)
{
string s1,s2;
cin>>s1>>s2;
int freq1[30], freq2[30];
reset(freq1);
reset(freq2);
for(i=0;i<s1.size();i++)
{
freq1[(s1[i]-'a')]++;
}
for(i=0;i<s2.size();i++)
{
freq2[(s2[i]-'a')]++;
}
for(i=0;i<26;i++)
{
ans[i] += max(freq1[i],freq2[i]);
}
s1.clear();
s2.clear();
}
for(i=0;i<26;i++)
cout<<ans[i]<<endl;
}
My output:
2
2
2
1
0
1
1
0
0
0
0
0
0
0
2
0
0
1
1
1
1
0
0
1
0
0
But judge reply