Submission #743285

#TimeUsernameProblemLanguageResultExecution timeMemory
743285vjudge1무지개나라 (APIO17_rainbow)C++17
11 / 100
20 ms852 KiB
#include <bits/stdc++.h>

#include "rainbow.h"

using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
#define ent "\n"

const int maxn = 1e6 + 100;
const ll INF = (1ll<<61);
const int MOD = 1e9 + 7;
const int inf = (1<<30);
const int maxl = 20;
const int P = 31;

int n, m;
int used[55][55];
int u[55][55];
int dx[] = {1, 0, -1, 0};
int dy[] = {0, 1, 0, -1};

void dfs(int x, int y, int l1, int r1, int l2, int r2){
    if(used[x][y] || u[x][y] || x < l1 || x > r1 || y < l2 || y > r2) return;
    u[x][y] = 1;
    for(int i = 0; i < 4; i++){
        dfs(x + dx[i], y + dy[i], l1, r1, l2, r2);
    }
}

void init(int r, int c, int x, int y, int p, char s[]){
    n = r; m = c;
    used[x][y] = 1;
    for(int i = 0; i < p; i++){
        if(s[i] == 'N') x--;
        else if(s[i] == 'W') y--;
        else if(s[i] == 'E') y++;
        else x++;
        used[x][y] = 1;
    }
}

int colour(int l1, int l2, int r1, int r2){
    for(int i = l1; i <= r1; i++){
        fill(u[i] + l2, u[i] + r2 + 1, 0);
    }
    int ans = 0;
    for(int i = l1; i <= r1; i++){
        for(int j = l2; j <= r2; j++){
            if(!used[i][j] && !u[i][j]) dfs(i, j, l1, r1, l2, r2), ans++;
        }
    }
    return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...