Submission #145894

#TimeUsernameProblemLanguageResultExecution timeMemory
145894davitmargRed-blue table (IZhO19_stones)C++17
100 / 100
58 ms2296 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; } for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) a[i][j]='-'; int k=min(((m*(n-(n/2+1)))/(m/2+1)),n); ans=m+k; int l=0,r=n/2-n+k; if(k) { if(r>=0) for(int j=1;j<=m;j++) { l++; r++; for(int i=1;i<=k;i++) if(((i<l || i>r) && l<=r) || (l>r && i<l && i>r)) a[i][j]='+'; l+=n/2-n+k; r+=n/2-n+k; l%=k; r%=k; } else for(int j=1;j<=m;j++) for(int i=1;i<=k;i++) a[i][j]='+'; } 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...