#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
char str[1000][1000],ch;
int arr[130];
int koyta_line,koyta_letter,counter;
struct a
{
int counter;
int index;
}arr1[1000];
bool cmp(a lhs,a rhs)
{
if(lhs.counter>rhs.counter)
{
return true;
}
return false;
}
void dfs(int i,int j)
{
if(str[i][j]=='*'||i>=koyta_line||j>=koyta_letter||i<0||j<0)
{
return;
}
else if(str[i][j]==ch)
{
str[i][j]='*';
dfs(i+1,j);
dfs(i,j+1);
dfs(i-1,j);
dfs(i,j-1);
}
}
int main()
{
int a,i,j,k,t,p;
scanf("%d",&t);
for(p=1; p<=t; p++)
{
scanf("%d %d",&koyta_line,&koyta_letter);
getchar();
for(i=0; i<koyta_line; i++)
{
for(j=0; j<koyta_letter; j++)
{
scanf("%c",&str[i][j]);
}
getchar();
}
for(i=0; i<koyta_line; i++)
{
counter=0;
for(j=0; j<koyta_letter; j++)
{
if(str[i][j]>='a'&&str[i][j]<='z')
{
a=str[i][j];
ch=str[i][j];
dfs(i,j);
arr[a]++;
}
}
}
j=0;
for(i=97; i<130; i++)
{
if(arr[i]!=0)
{
arr1[j].counter=arr[i];
arr1[j].index=i;
j++;
}
}
sort(arr1,arr1+j,cmp);
printf("World #%d\n",p);
for(i=0;i<j;i++)
{
printf("%c: %d\n",arr1[i].index,arr1[i].counter);
}
memset(arr,0,sizeof(arr));
memset(arr1,0,sizeof(arr1));
memset(str,'\0',sizeof(str));
}
return 0;
}
#include<string.h>
#include<algorithm>
using namespace std;
char str[1000][1000],ch;
int arr[130];
int koyta_line,koyta_letter,counter;
struct a
{
int counter;
int index;
}arr1[1000];
bool cmp(a lhs,a rhs)
{
if(lhs.counter>rhs.counter)
{
return true;
}
return false;
}
void dfs(int i,int j)
{
if(str[i][j]=='*'||i>=koyta_line||j>=koyta_letter||i<0||j<0)
{
return;
}
else if(str[i][j]==ch)
{
str[i][j]='*';
dfs(i+1,j);
dfs(i,j+1);
dfs(i-1,j);
dfs(i,j-1);
}
}
int main()
{
int a,i,j,k,t,p;
scanf("%d",&t);
for(p=1; p<=t; p++)
{
scanf("%d %d",&koyta_line,&koyta_letter);
getchar();
for(i=0; i<koyta_line; i++)
{
for(j=0; j<koyta_letter; j++)
{
scanf("%c",&str[i][j]);
}
getchar();
}
for(i=0; i<koyta_line; i++)
{
counter=0;
for(j=0; j<koyta_letter; j++)
{
if(str[i][j]>='a'&&str[i][j]<='z')
{
a=str[i][j];
ch=str[i][j];
dfs(i,j);
arr[a]++;
}
}
}
j=0;
for(i=97; i<130; i++)
{
if(arr[i]!=0)
{
arr1[j].counter=arr[i];
arr1[j].index=i;
j++;
}
}
sort(arr1,arr1+j,cmp);
printf("World #%d\n",p);
for(i=0;i<j;i++)
{
printf("%c: %d\n",arr1[i].index,arr1[i].counter);
}
memset(arr,0,sizeof(arr));
memset(arr1,0,sizeof(arr1));
memset(str,'\0',sizeof(str));
}
return 0;
}
0 comments: (+add yours?)
Post a Comment