hiho week 253 register

Ended

Participants:61

Verdict:Accepted
Score:100 / 100
Submitted:2019-05-06 09:04:41

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<bits/stdc++.h>
using namespace std;
queue<int> q;
int N,M,num;
int matrix[101][101][4];
string s[110];
int oneGrid(int x,int y,int z,int a){
    int i,j,k,l;
    k=(x<<12)+(y<<2);
    if(s[x][y]==' '){
        matrix[x][y][0]=matrix[x][y][1]=matrix[x][y][2]=matrix[x][y][3]=a;
        q.push(k+0);
        q.push(k+1);
        q.push(k+2);
        q.push(k+3);
    }else{
        j=s[x][y]=='/'?1:3;
        matrix[x][y][z]=a;
        matrix[x][y][z xor j]=a;
        q.push(k+z);
        q.push(k+(z xor j));
    }
    return 0;
}
int walk(int u){
    int x=u>>12,y=(u>>2)&1023,z=u&3;
    int x1,y1,z1;
    switch(z){
        case 0:{
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX