Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Author: 曹北健
- Result: AC Submission_id: 3394726
- Created at: Tue Apr 20 2021 19:22:15 GMT+0800 (China Standard Time)
- Problem_id: 4312 Time: 2 Memory: 1596
- */
- #include <stdio.h>
- #include <stdlib.h>
- #include <math.h>
- #include <ctype.h>
- #include <string.h>
- #pragma warning(disable:4996)
- #define MOD 1000007
- typedef long long LL;
- typedef unsigned long long ULL;
- #define IN(x,y) ((x)>=1&&(x)<=19&&(y)>=1&&(y)<=19)
- int map[22][22] = {0};
- int checkrow(int r,int c,int bw){
- if(IN(r + 1,c) && IN(r + 2,c) && IN(r + 3,c) && IN(r + 4,c)){
- if((map[r + 4][c] == bw) && (map[r + 1][c] == bw) && (map[r + 2][c] == bw) && (map[r + 3][c] == bw)){
- if(IN(r + 5,c)){
- return (map[r][c] == 0 || map[r + 5][c] == 0);
- }
- else{
- return (map[r][c] == 0);
- }
- }
- }
- return 0;
- }
- int checkcol(int r,int c,int bw){
- if(IN(r,c + 1) && IN(r,c + 2) && IN(r,c + 3) && IN(r,c + 4)){
- if((map[r][c + 1] == bw) && (map[r][c + 2] == bw) && (map[r][c + 3] == bw) && (map[r][c + 4] == bw)){
- if(IN(r,c + 5)){
- return (map[r][c + 5] == 0 || map[r][c] == 0);
- }
- else{
- return (map[r][c] == 0);
- }
- }
- }
- return 0;
- }
- int checkdiag1(int r,int c,int bw){
- if(IN(r + 1,c + 1) && IN(r + 2,c + 2) && IN(r + 3,c + 3) && IN(r + 4,c + 4)){
- 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)){
- if(IN(r + 5,c + 5)){
- return (map[r + 5][c + 5] == 0 || map[r][c] == 0);
- }
- else{
- return map[r][c] == 0;
- }
- }
- }
- return 0;
- }
- int checkdiag2(int r,int c,int bw){
- if(IN(r + 1,c - 1) && IN(r + 2,c - 2) && IN(r + 3,c - 3) && IN(r + 4,c - 4)){
- 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)){
- if(IN(r + 5,c - 5)){
- return (map[r + 5][c + 5] == 0 || map[r][c] == 0);
- }
- else{
- return map[r][c] == 0;
- }
- }
- }
- return 0;
- }
- int main(int argc,char **argv){
- #ifdef _DEBUG
- FILE *fp = freopen("input.txt","r",stdin);
- if(!fp){
- fp = fopen("input.txt","w");
- fclose(fp);
- return 1;
- }
- #endif
- int i,j,k,b = 0,x,y,ans = 0;
- while(!feof(stdin)){
- ans = 0;x = 0;y = 0;b = 0;
- for(i = 1;i <= 19;i++){
- for(j = 1;j <= 19;j++){
- scanf("%d",&map[i][j]);
- if(map[i][j] == 1)b++;
- }
- }
- for(i = 1;i <= 19;i++){
- for(j = 1;j <= 19;j++){
- for(k = 1;k <= 2;k++){
- if(checkrow(i,j,k)){
- ans = k;x = i+1;y = j;
- }
- if(checkcol(i,j,k)){
- ans = k;x = i;y = j+1;
- }
- if(checkdiag1(i,j,k)){
- ans = k;x = i+1;y = j+1;
- }
- if(checkdiag2(i,j,k)){
- ans = k;x = i + 1;y = j - 1;
- }
- }
- }
- }
- if(ans){
- printf("%d\n%d\n%d %d\n",ans,b,x,y);
- }
- else{
- puts("NO");
- }
- putchar('\n');
- }
- #ifdef _DEBUG
- freopen("CON","r",stdin);
- system("pause");
- #endif
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment