Problem link
#include<cstdio>
#include<iostream>
#include<cstring>
#include<vector>
#include<queue>
using namespace std;
int main()
{
int line;
scanf("%d",&line);
getchar();
int arr[130];
memset(arr,0,sizeof(arr));
vector<int>my;
vector<char>out[130];
priority_queue<int>ch;
while(line--)
{
char data[10000];
gets(data);
for(int i=0;i<strlen(data);i++)
{
if((data[i]>='A' && data[i]<='Z') || (data[i]>='a' && data[i]<='z'))
{
if((data[i]>='a' && data[i]<='z'))
data[i]=data[i]-32;
int a=data[i];
arr[a]++;
}
}
}
int visit[10000];
memset(visit,0,sizeof(visit));
for(int i=65;i<=90;i++)
{
if(arr[i]!=0 && !visit[arr[i]])
{
ch.push(arr[i]);
visit[arr[i]]=1;
}
}
while(!ch.empty())
{
int t=ch.top();
ch.pop();
my.push_back(t);
for(int i=65;i<=90;i++)
{
if(arr[i]==t)
out[t].push_back(i);
}
}
for(int i=0;i<my.size();i++)
{
int t=my[i];
for(int j=0;j<out[t].size();j++)
{
printf("%c %d\n",out[t][j],t);
}
}
return 0;
}
0 comments:
একটি মন্তব্য পোস্ট করুন