Submission #1203219

#TimeUsernameProblemLanguageResultExecution timeMemory
1203219SpyrosAlivRectangles (IOI19_rect)C++20
Compilation error
0 ms0 KiB
#include <bits/stdc++.h>
using namespace std;
#define ll long long

vector<pair<int, int>> delta = {{-1, 0}, {1, 0}, {0, -1}, {0, 1}};

vector<vector<int>> g;
int n, m;
vector<vector<bool>> vis;
int u, d, l, r, sz;

bool inside(int i, int j) {
    return i >= 0 && i < n && j >= 0 && j < m;
}

void dfs(int i, int j) {
    if (!inside(i, j) || g[i][j] || vis[i][j]) return;
    vis[i][j] = true;
    sz++;
    u = min(u, i);
    d = max(d, i);
    l = min(l, j);
    r = max(r, j);
    for (auto [di, dj]: delta) {
        dfs(i + di, j + dj);
    }
}

ll count_rectangles(vector<vector<int>> G) {
    g = G;
    n = g.size();
    m = g[0].size();
    if (n <= 2 || m <= 2) return 0;
    vector<int> bad(m, 0), good(m, 0);
    for (int i = 1; i < m-1; i++) {
        if (g[1][i] >= g[0][i] || g[1][i] >= g[2][i]) bad[i] = 1;
        if (g[1][i] < g[1][i+1]) good[i] = 1;
        good[i] += good[i-1];
    }
    bad[m-1] = true;
    ll ans = 0;
    ll furth = 0;
    for (int i = 1; i < m-1; i++) {
        if (bad[i]) continue;
        while (furth < i) furth++;
        while (!bad[furth]) furth++;
        furth--;
        ans += good[furth] - good[i-1];
    }
    return ans;
}

int main() {
    int N, M; cin >> N >> M;
    vector<vector<int>> G(N, vector<int>(M, 0));
    for (int i = 0; i < N; i++) {
        for (int j = 0; j < M; j++) cin >> G[i][j];
    }
    cout << count_rectangles(G) << "\n";
}

Compilation message (stderr)

/usr/bin/ld: /tmp/cc7Igk1B.o: in function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/cceuNr7m.o:rect.cpp:(.text.startup+0x0): first defined here
collect2: error: ld returned 1 exit status