/ SeriousOJ /

Record Detail

Time Exceeded


  
# Status Time Cost Memory Cost
#1 Accepted 1ms 532.0 KiB
#2 Accepted 12ms 532.0 KiB
#3 Accepted 29ms 532.0 KiB
#4 Accepted 33ms 584.0 KiB
#5 Accepted 25ms 584.0 KiB
#6 Accepted 42ms 532.0 KiB
#7 Accepted 156ms 576.0 KiB
#8 Accepted 35ms 532.0 KiB
#9 Accepted 37ms 576.0 KiB
#10 Accepted 34ms 532.0 KiB
#11 Accepted 485ms 532.0 KiB
#12 Accepted 1631ms 1.52 MiB
#13 Accepted 285ms 1.52 MiB
#14 Accepted 15ms 1.312 MiB
#15 Accepted 544ms 1.52 MiB
#16 Accepted 16ms 1.312 MiB
#17 Accepted 18ms 1.312 MiB
#18 Time Exceeded ≥2001ms ≥1.52 MiB
#19 Accepted 20ms 1.52 MiB
#20 Accepted 1772ms 1.52 MiB
#21 Time Exceeded ≥2097ms ≥4.273 MiB

Code

#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
template <typename T> using o_set = tree<T, null_type, std::less<T>, rb_tree_tag, tree_order_statistics_node_update>;
// #define int long long
#define endl '\n'
#define F first
#define S second
#define pii pair<int, int>
#define sz(x) (int) x.size()
using namespace std;
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());

void solve() {
    int n, m; cin>>n>>m;
    vector<vector<char>> v(n, vector<char>(m));
    for(auto &x : v) for(auto &y : x) cin>>y;

    auto get = [&] (int i, int j) {
        int mn = 1e9;
        int ni = i, nj = j;
        while(nj < m && v[i][nj] == '+') nj += 1;
        mn = min(mn, nj - j);
        nj = j;
        while(nj >= 0 && v[i][nj] == '+') nj -= 1;
        mn = min(mn, j - nj);

        while(ni < n && v[ni][j] == '+') ni += 1;
        mn = min(mn, ni - i);
        ni = i;
        while(ni >= 0 && v[ni][j] == '+') ni -= 1;
        mn = min(mn, i - ni);

        return 1 + 4 * (mn - 1);
    };
    
    int ans = 0;
    for(int i = 0; i < n; i++) {
        for(int j = 0; j < m; j++) if(v[i][j] == '+') {
            ans = max(ans, get(i, j));
        }
    }

    cout<<ans<<endl;
}

signed main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    int t = 1, c = 1; cin>>t;
    while(t--) {
        // cerr<<"Case "<<c++<<": \n";
        solve();
    }
}

Information

Submit By
Type
Submission
Problem
P1143 Plus of Pluses
Language
C++17 (G++ 13.2.0)
Submit At
2024-12-24 22:06:48
Judged At
2024-12-24 22:06:48
Judged By
Score
56
Total Time
≥2097ms
Peak Memory
≥4.273 MiB