답안 #440926

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
440926 2021-07-03T13:30:25 Z leaked Red-blue table (IZhO19_stones) C++14
0 / 100
99 ms 1436 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<<f.f[i][j];
                else
                    cout<<(char)op[s.f[j][i]];
            }
            cout<<'\n';
        }
    }
    return 0;
}
/*

*/
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 204 KB in the table A+B is not equal to 3
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 332 KB in the table A+B is not equal to 46
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 204 KB in the table A+B is not equal to 3
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 82 ms 1364 KB in the table A+B is not equal to 116
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 99 ms 1436 KB in the table A+B is not equal to 44
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 204 KB in the table A+B is not equal to 3
2 Halted 0 ms 0 KB -