답안 #440916

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
440916 2021-07-03T13:22:45 Z leaked Red-blue table (IZhO19_stones) C++14
11 / 100
84 ms 3352 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;
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((int)m/2)st.pb({m/2,i});
    }
    for(int i=0;i<m;i++){
        vec<pii>del;
        int ok=1;
        for(int j=0;j<(n+1)/2;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<<f.f[i][j];
                else
                    cout<<(char)op[s.f[j][i]];
            }
            cout<<'\n';
        }
    }
    return 0;
}
/*

*/
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 204 KB Output is correct
2 Incorrect 0 ms 204 KB in the table A+B is not equal to 2
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 332 KB in the table A+B is not equal to 2
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 204 KB Output is correct
2 Incorrect 0 ms 204 KB in the table A+B is not equal to 2
# 결과 실행 시간 메모리 Grader output
1 Correct 84 ms 1380 KB Output is correct
2 Correct 75 ms 2916 KB Output is correct
3 Correct 71 ms 3352 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 76 ms 1404 KB in the table A+B is not equal to 48
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 204 KB Output is correct
2 Incorrect 0 ms 204 KB in the table A+B is not equal to 2