wojiaocbj

fiveline

Apr 7th, 2022
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.84 KB | None | 0 0
  1. /*
  2.  Author: 曹北健
  3.  Result: AC Submission_id: 3394726
  4.  Created at: Tue Apr 20 2021 19:22:15 GMT+0800 (China Standard Time)
  5.  Problem_id: 4312   Time: 2 Memory: 1596
  6. */
  7.  
  8. #include <stdio.h>
  9. #include <stdlib.h>
  10. #include <math.h>
  11. #include <ctype.h>
  12. #include <string.h>
  13. #pragma warning(disable:4996)
  14. #define MOD 1000007
  15. typedef long long LL;
  16. typedef unsigned long long ULL;
  17. #define IN(x,y) ((x)>=1&&(x)<=19&&(y)>=1&&(y)<=19)
  18. int map[22][22] = {0};
  19. int checkrow(int r,int c,int bw){
  20.     if(IN(r + 1,c) && IN(r + 2,c) && IN(r + 3,c) && IN(r + 4,c)){
  21.         if((map[r + 4][c] == bw) && (map[r + 1][c] == bw) && (map[r + 2][c] == bw) && (map[r + 3][c] == bw)){
  22.             if(IN(r + 5,c)){
  23.                 return (map[r][c] == 0 || map[r + 5][c] == 0);
  24.             }
  25.             else{
  26.                 return (map[r][c] == 0);
  27.             }
  28.         }
  29.     }
  30.     return 0;
  31. }
  32. int checkcol(int r,int c,int bw){
  33.     if(IN(r,c + 1) && IN(r,c + 2) && IN(r,c + 3) && IN(r,c + 4)){
  34.         if((map[r][c + 1] == bw) && (map[r][c + 2] == bw) && (map[r][c + 3] == bw) && (map[r][c + 4] == bw)){
  35.             if(IN(r,c + 5)){
  36.                 return (map[r][c + 5] == 0 || map[r][c] == 0);
  37.             }
  38.             else{
  39.                 return (map[r][c] == 0);
  40.             }
  41.         }
  42.     }
  43.     return 0;
  44. }
  45. int checkdiag1(int r,int c,int bw){
  46.     if(IN(r + 1,c + 1) && IN(r + 2,c + 2) && IN(r + 3,c + 3) && IN(r + 4,c + 4)){
  47.         if((map[r + 1][c + 1] == bw) && (map[r + 2][c + 2] == bw) && (map[r + 3][c + 3] == bw) && (map[r + 4][c + 4] == bw)){
  48.             if(IN(r + 5,c + 5)){
  49.                 return (map[r + 5][c + 5] == 0 || map[r][c] == 0);
  50.             }
  51.             else{
  52.                 return map[r][c] == 0;
  53.             }
  54.         }
  55.     }
  56.     return 0;
  57. }
  58. int checkdiag2(int r,int c,int bw){
  59.     if(IN(r + 1,c - 1) && IN(r + 2,c - 2) && IN(r + 3,c - 3) && IN(r + 4,c - 4)){
  60.         if((map[r + 1][c - 1] == bw) && (map[r + 2][c - 2] == bw) && (map[r + 3][c - 3] == bw) && (map[r + 4][c - 4] == bw)){
  61.             if(IN(r + 5,c - 5)){
  62.                 return (map[r + 5][c + 5] == 0 || map[r][c] == 0);
  63.             }
  64.             else{
  65.                 return map[r][c] == 0;
  66.             }
  67.         }
  68.     }
  69.     return 0;
  70. }
  71. int main(int argc,char **argv){
  72. #ifdef _DEBUG
  73.     FILE *fp = freopen("input.txt","r",stdin);
  74.     if(!fp){
  75.         fp = fopen("input.txt","w");
  76.         fclose(fp);
  77.         return 1;
  78.     }
  79. #endif
  80.     int i,j,k,b = 0,x,y,ans = 0;
  81.     while(!feof(stdin)){
  82.         ans = 0;x = 0;y = 0;b = 0;
  83.         for(i = 1;i <= 19;i++){
  84.             for(j = 1;j <= 19;j++){
  85.                 scanf("%d",&map[i][j]);
  86.                 if(map[i][j] == 1)b++;
  87.             }
  88.         }
  89.         for(i = 1;i <= 19;i++){
  90.             for(j = 1;j <= 19;j++){
  91.                 for(k = 1;k <= 2;k++){
  92.                     if(checkrow(i,j,k)){
  93.                         ans = k;x = i+1;y = j;
  94.                     }
  95.                     if(checkcol(i,j,k)){
  96.                         ans = k;x = i;y = j+1;
  97.                     }
  98.                     if(checkdiag1(i,j,k)){
  99.                         ans = k;x = i+1;y = j+1;
  100.                     }
  101.                     if(checkdiag2(i,j,k)){
  102.                         ans = k;x = i + 1;y = j - 1;
  103.                     }
  104.                 }
  105.             }
  106.         }
  107.         if(ans){
  108.             printf("%d\n%d\n%d %d\n",ans,b,x,y);
  109.         }
  110.         else{
  111.             puts("NO");
  112.         }
  113.         putchar('\n');
  114.     }  
  115. #ifdef _DEBUG
  116.     freopen("CON","r",stdin);
  117.     system("pause");
  118. #endif
  119.     return 0;
  120. }
Advertisement
Add Comment
Please, Sign In to add comment