fork download
  1. #include<stdio.h>
  2.  
  3. int a[11][11];
  4. int min(int a, int b) { if (a == 0)return b; if (a < b)return a; return b; }
  5. int max(int a, int b) { if (a == 0)return b; if (a < b)return b; return a; }
  6. int mnx[11], mxx[11], mny[11], mxy[11], ck[11];
  7. int main() {
  8. int n;
  9. int i, j;
  10. scanf("%d", &n);
  11. for (i = 1; i <= n; i++)for (j = 1; j <= n; j++) {
  12. scanf("%1d", &a[i][j]);
  13. mnx[a[i][j]] = min(mnx[a[i][j]], i);
  14. mxx[a[i][j]] = max(mxx[a[i][j]], i);
  15. mny[a[i][j]] = min(mny[a[i][j]], j);
  16. mxy[a[i][j]] = max(mxy[a[i][j]], j);
  17. ck[a[i][j]] = 1;
  18. }
  19. int x, y;
  20. for (i = 1; i <= 9; i++) {
  21. for (x = mnx[i]; x <= mxx[i]; x++) {
  22. for (y = mny[i]; y <= mxy[i]; y++) {
  23. if (a[x][y] == i)continue;
  24. ck[a[x][y]] = 0;
  25. }
  26. }
  27. }
  28. int ans = 0;
  29. for (i = 1; i <= 9; i++)ans += ck[i];
  30. printf("%d", ans);
  31. return 0;
  32. }
Success #stdin #stdout 0s 4436KB
stdin
4
2230
2737
2777
0000
stdout
1