// #pragma GCC optimize("unroll-loops")
// #pragma GCC optimize("Ofast")
#include <bits/stdc++.h>
using namespace std;
#define speedup cin.tie(0)->sync_with_stdio(0)
#define bitcount(x) __builtin_popcount(x)
#define all(x) x.begin(),x.end()
#define Tp template<class T>
#define pb emplace_back
Tp using vc=vector<T>;
using ld=long double;
using ll=long long;
inline void solve() {
int n, m;
cin >> n >> m;
vc<int> mask(n, 0);
int res = 0;
vc<int> ansv(n, 0);
auto gen = [&](auto& self, int i) -> void {
if(i == n) {
int ans = 0;
for(int j = 0; j < n; j++)
if(bitcount(mask[j]) >= (m >> 1) + (m & 1)) ans++;
for(int bit = 0; bit < m; bit++) {
int sum = 0;
for(int j = 0; j < n; j++)
if((mask[j] >> bit) & 1) sum++;
if(sum <= (n >> 1)) ans++;
} if(res < ans) {
res = ans;
ansv = mask;
}
return;
}
for(int masks = 0; masks < (1 << m); masks++) {
mask[i] = masks;
self(self, i + 1);
}
}; gen(gen, 0);
cout << res << '\n';
for(int i = 0; i < n; i++){
for(int j = 0; j < m; j++){
if((ansv[i] >> j) & 1) cout << "+";
else cout << "-";
} cout << '\n';
}
}
signed main(){
speedup;
int t; cin >> t;
while(t--) solve();
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |