hiho week 159 register

Ended

Participants:533

Verdict:Accepted
Score:100 / 100
Submitted:2017-07-17 14:39:39

Lang:G++

Edit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int ans,aim;
int N,M,x,y;
int g[105][105];
int vis[105][105];
void dfs(int x,int y){
    vis[x][y] = 1;
    int cnt = 0;
    if(g[x-1][y] == aim && vis[x-1][y] == 1) cnt++;
    if(g[x+1][y] == aim && vis[x+1][y] == 1) cnt++;
    if(g[x][y-1] == aim && vis[x][y-1] == 1) cnt++;
    if(g[x][y+1] == aim && vis[x][y+1] == 1) cnt++;
    ans += (2-cnt)*2;
    if(g[x-1][y] == aim && vis[x-1][y] == 0) dfs(x-1,y);
    if(g[x+1][y] == aim && vis[x+1][y] == 0) dfs(x+1,y);
    if(g[x][y-1] == aim && vis[x][y-1] == 0) dfs(x,y-1);
    if(g[x][y+1] == aim && vis[x][y+1] == 0) dfs(x,y+1);
}
int main(){
    scanf("%d%d%d%d",&N,&M,&x,&y);
    for(int i=1;i<=N;i++)
        g[i][0] = g[i][M+1] = -1;
    for(int i=1;i<=M;i++)
        g[0][i] = g[N+1][i] = -1;
    for(int i=1;i<=N;i++)
        for(int j=1;j<=M;j++)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX