/ SeriousOJ /

Record Detail

Wrong Answer


  
# Status Time Cost Memory Cost
#1 Wrong Answer 5ms 532.0 KiB
#2 Wrong Answer 4ms 532.0 KiB

Code

// Authored by Ibrahimfostok...
// Next level : "Master"
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll mod = 998244353;
// const ll mod = 1e9 + 7;
#define gcd __gcd
#define int ll
#define ld long double
#define lcm(a, b) (a * b / gcd(a, b))
#define ceil(x, y) (((x) + (y) - 1ll) / (y))
#define all(x) x.begin(), x.end()
#define rall(x) x.rbegin(), x.rend()
#define pb push_back
#define MOD(x) x = ((x % mod) + mod) % mod
const long double pi = 3.14159265358979323846;
mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count());
ll rand(ll L, ll R)
{
    return uniform_int_distribution<ll>(L, R)(rng);
}
//
void My_Solve(int TC)
{
    // cout << setprecision(10) << fixed;
    int n, m, ans = 0;
    cin >> n >> m;
    vector<string> a(n);
    for (int i = 0; i < n; i++)
        cin >> a[i];
    map<pair<int, int>, bool> vis;
    for (int i = 0; i < n; i++)
        for (int j = 0; j < m; j++)
            if (!vis[{i, j}] && a[i][j] == '0')
            {
                queue<pair<int, int>> q;
                q.push({i, j}), vis[{i, j}] = 1;
                int here = 0;
                while (!q.empty())
                {
                    auto x = q.front();
                    here++, q.pop();
                    if (x.first && a[x.first - 1][x.second] == '0' && !vis[{x.first - 1, x.second}])
                        q.push({x.first - 1, x.second}), vis[{x.first - 1, x.second}] = 1;
                    if (x.first + 1 < n && a[x.first + 1][x.second] == '0' && !vis[{x.first + 1, x.second}])
                        q.push({x.first + 1, x.second}), vis[{x.first + 1, x.second}] = 1;
                    if (x.second && a[x.first][x.second - 1] == '0' && !vis[{x.first, x.second - 1}])
                        q.push({x.first, x.second - 1}), vis[{x.first, x.second - 1}] = 1;
                    if (x.second + 1 < m && a[x.first][x.second + 1] == '0' && !vis[{x.first, x.second + 1}])
                        q.push({x.first, x.second + 1}), vis[{x.first, x.second + 1}] = 1;
                }
                ans = max(ans, here);
            }
    cout << "Floor    #" << TC << ": " << ans << '\n';
}
int32_t main()
{
    ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
    // freopen("input.txt", "r", stdin);
    // freopen("output.txt", "w", stdout);
    int t = 1;
    cin >> t;
    for (int i = 1; i <= t; i++)
        My_Solve(i);
    return 0;
}

Information

Submit By
Type
Submission
Problem
P1002 Office Space
Language
C++17 (G++ 13.2.0)
Submit At
2025-02-17 14:53:29
Judged At
2025-02-17 14:53:29
Judged By
Score
0
Total Time
5ms
Peak Memory
532.0 KiB