Submission #440927

# Submission time Handle Problem Language Result Execution time Memory
440927 2021-07-03T13:30:41 Z leaked Red-blue table (IZhO19_stones) C++14
100 / 100
131 ms 4256 KB
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
//#pragma GCC opimize(-O3)
//#pragma GCC opimize(Ofast)
//#pragma GCC opimize(unroll-loops)
//#pragma GCC target("avx,avx2,popcnt,sse,sse2,sse3,sse4,abm,tune=native")
#define m_p make_pair
#define vec vector
#define all(x) x.begin(),x.end()
#define pb push_back
#define sz(x) (int)x.size()
#define pw(x) (1LL<<x)
#define f first
#define s second

using namespace std;
using namespace __gnu_pbds;
typedef long double ld;
typedef pair<int,int> pii;
int getneed(int x){
    int w=x/2;
    return w+1;
}
pair<vec<vec<char>>,int>solve(int n,int m){
    vec<vec<char>>a(n,vec<char>(m,'-'));
    int ans=n;
    vec<pii>st;
    for(int i=0;i<n;i++){
        if(m-getneed(m))st.pb({m-getneed(m),i});
    }
    for(int i=0;i<m;i++){
        vec<pii>del;
        int ok=1;
        for(int j=0;j<getneed(n);j++){
            if(!sz(st)){
                ok=0;
                break;
            }
            pii w=st.back();st.pop_back();
            a[w.s][i]='+';
            w.f--;
            if(w.f) del.pb(w);
        }
        for(auto &z : del) st.pb(z);
        sort(all(st));
        ans+=ok;
    }
    return {a,ans};
}
map<char,int>op;
signed main()
{
    ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    int t;
    cin>>t;
    op['+']='-';
    op['-']='+';
    while(t--){
        int n,m;
        cin>>n>>m;
//        vec<vec<char>>a(n,vec<char>(m,'+'));
        auto f=solve(n,m),s=solve(m,n);
//        cerr<<f.s<<' '<<s.s<<endl;
        cout<<max(f.s,s.s)<<'\n';
        for(int i=0;i<n;i++){
            for(int j=0;j<m;j++){
                if(f.s>s.s)
                    cout<<(char)op[f.f[i][j]];
                else
                    cout<<s.f[j][i];
            }
            cout<<'\n';
        }
    }
    return 0;
}
/*

*/
# Verdict Execution time Memory Grader output
1 Correct 0 ms 204 KB Output is correct
2 Correct 0 ms 204 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 332 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 204 KB Output is correct
2 Correct 0 ms 204 KB Output is correct
3 Correct 2 ms 332 KB Output is correct
4 Correct 5 ms 332 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 82 ms 1308 KB Output is correct
2 Correct 78 ms 3012 KB Output is correct
3 Correct 73 ms 3304 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 88 ms 1348 KB Output is correct
2 Correct 84 ms 2504 KB Output is correct
3 Correct 81 ms 1924 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 204 KB Output is correct
2 Correct 0 ms 204 KB Output is correct
3 Correct 2 ms 332 KB Output is correct
4 Correct 5 ms 332 KB Output is correct
5 Correct 82 ms 1308 KB Output is correct
6 Correct 78 ms 3012 KB Output is correct
7 Correct 73 ms 3304 KB Output is correct
8 Correct 88 ms 1348 KB Output is correct
9 Correct 84 ms 2504 KB Output is correct
10 Correct 81 ms 1924 KB Output is correct
11 Correct 19 ms 516 KB Output is correct
12 Correct 69 ms 2336 KB Output is correct
13 Correct 82 ms 1848 KB Output is correct
14 Correct 66 ms 1268 KB Output is correct
15 Correct 131 ms 4256 KB Output is correct
16 Correct 97 ms 3240 KB Output is correct
17 Correct 35 ms 1604 KB Output is correct