Submission #145225

#TimeUsernameProblemLanguageResultExecution timeMemory
145225davitmargRed-blue table (IZhO19_stones)C++17
0 / 100
95 ms1612 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; char a[1003][1003]; int main() { cin>>t; while(t--) { cin>>n>>m; 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--; if(-p.first>=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); for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) printf("%c",a[i][j]); printf("\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...