제출 #991563

#제출 시각아이디문제언어결과실행 시간메모리
991563MardonbekhazratovRed-blue table (IZhO19_stones)C++17
100 / 100
64 ms2280 KiB
#include<bits/stdc++.h> using namespace std; void solve(){ int n,m; cin>>n>>m; vector<string>a; if(n>=m){ a.assign(n,string(m,'+')); vector<int>b(n,0); for(int i=0;i<m;i++){ set<pair<int,int>>s; for(int j=0;j<n;j++) s.insert({b[j],j}); for(int j=0;j<n/2+1;j++){ auto x=*s.begin(); s.erase(s.begin()); if(x.first>=(m-1)/2) break; b[x.second]++; a[x.second][i]='-'; } } } else{ a.assign(n,string(m,'-')); vector<int>b(m,0); for(int i=0;i<n;i++){ set<pair<int,int>>s; for(int j=0;j<m;j++) s.insert({b[j],j}); for(int j=0;j<m/2+1;j++){ auto x=*s.begin(); s.erase(s.begin()); if(x.first>=(n-1)/2) break; b[x.second]++; a[i][x.second]='+'; } } } int ans=0; for(int i=0;i<n;i++){ int c=0; for(int j=0;j<m;j++){ if(a[i][j]=='+') c++; } if(c>m/2) ans++; } for(int i=0;i<m;i++){ int c=0; for(int j=0;j<n;j++){ if(a[j][i]=='-') c++; } if(c>n/2) ans++; } cout<<ans<<'\n'; for(int i=0;i<n;i++){ cout<<a[i]<<'\n'; } } signed main(){ int t=1; cin>>t; while(t--){ solve(); cout<<'\n'; } return 0; }
#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...