제출 #1349670

#제출 시각아이디문제언어결과실행 시간메모리
1349670mikasaRed-blue table (IZhO19_stones)C++20
17 / 100
8 ms452 KiB
#include<bits/stdc++.h>
using namespace std;
#define debug(n,m) cout<<"["<<#n<<"]->"<<n<<m
#define int long long
#define all(x,off) x.begin()+off,x.end()
#define pb push_back 

const int N=1e6+10;
const int inf=9e17;
const int mod=1e9+7;

int n,m;
void solve_sub1() {
  vector<vector<char>> ans(n+1,vector<char>(m+1,'-'));
  int res=0;
  for (int mask=0;mask<(1<<(n*m));++mask) {
    vector<int> c(m+1,0);
    vector<int> r(n+1,0);
    for (int i=0;i<n*m;++i) {
      if (mask&(1<<i)) {
        ++r[i/m+1];
        --c[i%m+1];
      }
      else --r[i/m+1],++c[i%m+1];
    } 
    int cur=0;
    for (int i=1;i<=m;++i) if (c[i]>0) ++cur;
    for (int i=1;i<=n;++i) if (r[i]>0) ++cur;

    if (cur>res) {
      res=cur;
      for (int i=0;i<n*m;++i) {
        if (mask&(1<<i)) {
          ans[i/m+1][i%m+1]='+';
        }
      }
    }
  }
  cout<<res<<'\n';
  for (int i=1;i<=n;++i) {
    for (int j=1;j<=m;++j) {
      cout<<ans[i][j];
    }
    cout<<'\n';
  }
}

void levi() {
  cin>>n>>m;
  if (max(n,m)<=4) solve_sub1();
  
}

int32_t main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);int tt=1;cin>>tt;
  while (tt--) levi();
}

/*


*/
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...