Advertisement
Guest User

Untitled

a guest
Aug 12th, 2017
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.97 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement