SHARE
TWEET

Untitled

a guest Aug 12th, 2017 41 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include<iostream>
  2. #include<cstdio>
  3. #include<algorithm>
  4. #include<string>
  5. using namespace std;
  6. int m,n,coun;
  7. char ar[100][100];
  8. struct node{
  9.     char ch;
  10.     int in;
  11. }p[10000];
  12. void floodfill(int a, int b,char k){
  13.     if(a<0||b<0||a==m||b==n||ar[a][b]!=k)
  14.         return;
  15.     coun++;
  16.     ar[a][b]='.';
  17.     floodfill(a-1,b,k);
  18.     floodfill(a+1,b,k);
  19.     floodfill(a,b-1,k);
  20.     floodfill(a,b+1,k);
  21. }
  22. bool fin(node a,node b){
  23.     if(a.in>b.in)
  24.         return true;
  25.     if(a.in==b.in&&a.ch<b.ch)
  26.         return true;
  27.     return false;
  28. }
  29. int main()
  30. {
  31.     int kas=0,i,j;
  32.     while(scanf("%d%d",&m,&n)==2){
  33.         if(m==0&&n==0)
  34.             break;
  35.         kas++;
  36.         for( i=0;i<m;i++)
  37.             cin>>ar[i];
  38.         int lenth=0;
  39.         for(i=0;i<m;i++){
  40.             for(j=0;j<n;j++){
  41.                 if(ar[i][j]!='.'){
  42.                     coun=0;
  43.                     p[lenth].ch=ar[i][j];
  44.                     floodfill(i,j,ar[i][j]);
  45.                     p[lenth++].in=coun;
  46.                 }
  47.             }
  48.  
  49.         }
  50.             sort(p,p+lenth,fin);
  51.             printf("Problem %d:\n",kas);
  52.             for(i=0;i<lenth;i++)
  53.                 printf("%c %d\n",p[i].ch,p[i].in);
  54.     }
  55.         return 0;
  56. }
RAW Paste Data
Top