a53

EasyOCR

a53
Apr 11th, 2019
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.19 KB | None | 0 0
  1. #include <cstdio>
  2. using namespace std;
  3. FILE *f=fopen("easyocr.in","r");
  4. FILE *g=fopen("easyocr.out","w");
  5. int n,m,i,j,aparitii[10],nrcif=0,nr,x,y,ok;
  6. char a[1000][1000],c2,c5,c6;
  7. struct el
  8. {
  9. int x,y;
  10. };
  11.  
  12. int coada(int x,int y,char a1,char b)
  13. {
  14. register el coada1[30];
  15. register int ic=0,sf=0,i,
  16. x1[9]={-1,-1,0,1,1,1,0,-1},
  17. y1[9]={0,1,1,1,0,-1,-1,-1};
  18. nr++;
  19. ic=1;
  20. sf=1;
  21. coada1[sf].x=x;
  22. coada1[sf].y=y;
  23. a[x][y]=b;
  24. while(ic<=sf)
  25. {
  26. for(i=0;i<8;i++)
  27. if(a[coada1[ic].x+x1[i]][coada1[ic].y+y1[i]]==a1)
  28. {
  29. nr++;
  30. sf++;
  31. coada1[sf].x=coada1[ic].x+x1[i];
  32. coada1[sf].y=coada1[ic].y+y1[i];
  33. a[coada1[ic].x+x1[i]][coada1[ic].y+y1[i]]=b;
  34. }
  35. ic++;
  36. }
  37. return nr;
  38. }
  39.  
  40. int main()
  41. {
  42. fscanf(f,"%d %d\n",&n,&m);
  43. for(i=1;i<=n;i++)
  44. {
  45. for(j=1;j<=m;j++)
  46. a[i][j]=fgetc(f);
  47. fgetc(f);
  48. }
  49. fclose(f);
  50. do
  51. {
  52. ok=0;
  53. for(i=1;i<=n&&ok==0;i++)
  54. for(j=1;j<=m&&ok==0;j++)
  55. if(a[i][j]=='1')
  56. {
  57. ok=1;
  58. x=i;
  59. y=j;
  60. }
  61. c5=a[x+1][y];
  62. c2=a[x+4][y];
  63. c6=a[x+4][y];
  64. nr=0;
  65. coada(x,y,'1','0');
  66. switch(nr)
  67. {
  68. case 20: aparitii[0]++;nrcif++;break;
  69. case 8: aparitii[1]++;nrcif++;break;
  70. case 14: aparitii[4]++;nrcif++;break;
  71. case 11: aparitii[7]++;nrcif++;break;
  72. case 23: aparitii[8]++;nrcif++;break;
  73. case 19: if(c5=='1') {aparitii[5]++;nrcif++;}
  74. else
  75. if(c2=='1'){aparitii[2]++;nrcif++;}
  76. else {aparitii[3]++;nrcif++;} break;
  77. case 21: if(c6=='1') {aparitii[6]++;nrcif++;}
  78. else {aparitii[9]++;nrcif++;} break;
  79. }
  80. } while (ok==1);
  81. fprintf(g,"%d\n",nrcif);
  82. for(i=0;i<=9;i++)
  83. if(aparitii[i]!=0)
  84. fprintf(g,"%d %d ",i,aparitii[i]);
  85. fclose(g);
  86. return 0;
  87. }
Add Comment
Please, Sign In to add comment