50072. City Grids
難度:4.3/5
Second Try: 4/5 Used Time: 32:18
Prof. P will punish you if you use global variables :)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#include <stdlib.h>
#include "City_Grid.h"
void solve(City* c, int visited[], int* cnt){
if(visited[c->label]) return;
visited[c->label] = 1;
if(c->east != NULL && c->north != NULL){
if(c->east->north != NULL && c->north->east != NULL){
(*cnt) += 1;
}
solve(c->east, visited, cnt);
solve(c->north, visited, cnt);
}
else if(c->east != NULL){
solve(c->east, visited, cnt);
}
else if(c->north != NULL){
solve(c->north, visited, cnt);
}
}
int City_Grid(City *c){
int visited[10005] = {0};
int cnt = 0;
solve(c, visited, &cnt);
return cnt;
}