Submission #145879

#TimeUsernameProblemLanguageResultExecution timeMemory
145879davitmargRed-blue table (IZhO19_stones)C++17
27 / 100
94 ms1464 KiB
/*DavitMarg*/ #include <iostream> #include <algorithm> #include <cmath> #include <vector> #include <string> #include <cstring> #include <map> #include <unordered_map> #include <set> #include <queue> #include <iomanip> #include <stack> #include <cassert> #include <iterator> #include <bitset> #include <fstream> #define mod 998244353ll #define LL long long #define LD long double #define MP make_pair #define PB push_back #define all(v) v.begin(),v.end() using namespace std; int t,n,m,ans,rev; char a[1003][1003],sum[1003]; int main() { cin>>t; while(t--) { rev=0; cin>>n>>m; if(m<n) { swap(m,n); rev=1; } priority_queue<pair<int,int>> q; for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) a[i][j]='+'; for(int i=1;i<=n;i++) q.push(MP(0,i)); for(int j=1;j<=m;j++) { vector<pair<int,int>> d; for(int i=1;i<=n/2+1;i++) { pair<int,int> p=q.top(); q.pop(); p.first++; sum[p.second]++; if(p.first==m-m/2-1) p.first=-mod; if(sum[p.second]>=m/2+1) p.first=mod; d.PB(p); a[p.second][j]='-'; } while(!d.empty()) { q.push(d.back()); d.pop_back(); } } ans=m; for(int i=1;i<=n;i++) { int sum=0; for(int j=1;j<=m;j++) sum+=(a[i][j]=='+'); ans+=(sum>=m/2+1); } printf("%d\n",ans); if(!rev) for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) printf("%c",a[i][j]); printf("\n"); } else { for(int j=1;j<=m;j++) { for(int i=1;i<=n;i++) { if(a[i][j]=='+') a[i][j]='-'; else a[i][j]='+'; printf("%c",a[i][j]); } printf("\n"); } } } return 0; } /* 2 1 3 3 3 */
#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...