Submission #410188

# Submission time Handle Problem Language Result Execution time Memory
410188 2021-05-22T08:24:11 Z rrrr10000 Red-blue table (IZhO19_stones) C++14
100 / 100
21 ms 9256 KB
#include <bits/stdc++.h>
using namespace std;
#define rep(i, n)  for(long long i=0;i<(long long)(n);i++)
#define REP(i,k,n) for(long long i=k;i<(long long)(n);i++)
#define pb emplace_back
#define lb(v,k) (lower_bound(all(v),(k))-v.begin())
#define ub(v,k) (upper_bound(all(v),(k))-v.begin())
#define fi first
#define se second
#define pi M_PI
#define PQ(T) priority_queue<T>
#define SPQ(T) priority_queue<T,vector<T>,greater<T>>
#define dame(a) {out(a);return 0;}
#define decimal cout<<fixed<<setprecision(15);
#define all(a) a.begin(),a.end()
#define rsort(a) {sort(all(a));reverse(all(a));}
#define dupli(a) {sort(all(a));a.erase(unique(all(a)),a.end());}
typedef long long ll;
typedef pair<ll,ll> P;
typedef tuple<ll,ll,ll> PP;
typedef tuple<ll,ll,ll,ll> PPP;
using vi=vector<ll>;
using vvi=vector<vi>;
using vvvi=vector<vvi>;
using vvvvi=vector<vvvi>;
using vp=vector<P>;
using vvp=vector<vp>;
using vb=vector<bool>;
using vvb=vector<vb>;
const ll inf=1001001001001001001;
const ll INF=1001001001;
const ll mod=1000000007;
const double eps=1e-10;
template<class T> bool chmin(T&a,T b){if(a>b){a=b;return true;}return false;}
template<class T> bool chmax(T&a,T b){if(a<b){a=b;return true;}return false;}
template<class T> void out(T a){cout<<a<<'\n';}
template<class T> void outp(T a){cout<<'('<<a.fi<<','<<a.se<<')'<<'\n';}
template<class T> void outvp(T v){rep(i,v.size())cout<<'('<<v[i].fi<<','<<v[i].se<<')';cout<<'\n';}
template<class T> void outvvp(T v){rep(i,v.size())outvp(v[i]);}
template<class T> void outv(T v){rep(i,v.size()){if(i)cout<<' ';cout<<v[i];}cout<<'\n';}
template<class T> void outvv(T v){rep(i,v.size())outv(v[i]);}
template<class T> bool isin(T x,T l,T r){return (l)<=(x)&&(x)<=(r);}
template<class T> void yesno(T b){if(b)out("yes");else out("no");}
template<class T> void YesNo(T b){if(b)out("Yes");else out("No");}
template<class T> void YESNO(T b){if(b)out("YES");else out("NO");}
template<class T> void outset(T s){auto itr=s.begin();while(itr!=s.end()){if(itr!=s.begin())cout<<' ';cout<<*itr;itr++;}cout<<'\n';}
void outs(ll a,ll b){if(a>=inf-100)out(b);else out(a);}
ll gcd(ll a,ll b){if(b==0)return a;return gcd(b,a%b);}
ll modpow(ll a,ll b){ll res=1;a%=mod;while(b){if(b&1)res=res*a%mod;a=a*a%mod;b>>=1;}return res;}

int main(){
    ll t;cin>>t;
    rep(tt,t){
        ll n,m;cin>>n>>m;
        bool swapped=false;
        if(n>m){
            swap(n,m);swapped=true;
        }
        vvi ans(n,vi(m));
        ll sum=((n-1)/2)*m,a=0,b=m/2+1;
        while((a+1)*b<=sum)a++;
        out(a+m);
        rep(i,m)rep(j,(n-1)/2)ans[((n-1)/2*i+j)%a][i]=1;
        if(!swapped){
            rep(i,n){
                string s;
                rep(j,m){
                    if(ans[i][j])s+='+';
                    else s+='-';
                }
                out(s);
            }
        }
        else{
            rep(i,m){
                string s;
                rep(j,n){
                    if(ans[j][i])s+='-';
                    else s+='+';
                }
                out(s);
            }
        }
    }
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 1 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 1 ms 204 KB Output is correct
2 Correct 1 ms 204 KB Output is correct
3 Correct 2 ms 332 KB Output is correct
4 Correct 3 ms 332 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 21 ms 1428 KB Output is correct
2 Correct 17 ms 6092 KB Output is correct
3 Correct 19 ms 6792 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 20 ms 1672 KB Output is correct
2 Correct 16 ms 4908 KB Output is correct
3 Correct 13 ms 3496 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 1 ms 204 KB Output is correct
3 Correct 2 ms 332 KB Output is correct
4 Correct 3 ms 332 KB Output is correct
5 Correct 21 ms 1428 KB Output is correct
6 Correct 17 ms 6092 KB Output is correct
7 Correct 19 ms 6792 KB Output is correct
8 Correct 20 ms 1672 KB Output is correct
9 Correct 16 ms 4908 KB Output is correct
10 Correct 13 ms 3496 KB Output is correct
11 Correct 8 ms 560 KB Output is correct
12 Correct 16 ms 4444 KB Output is correct
13 Correct 16 ms 3240 KB Output is correct
14 Correct 13 ms 1996 KB Output is correct
15 Correct 19 ms 9256 KB Output is correct
16 Correct 14 ms 6728 KB Output is correct
17 Correct 9 ms 3148 KB Output is correct