Submission #340688

#TimeUsernameProblemLanguageResultExecution timeMemory
340688David_MRed-blue table (IZhO19_stones)C++14
38 / 100
4 ms1388 KiB
#include <bits/stdc++.h> 
#define ll long long
#define pb push_back
#define F first
#define S second
using namespace std;
const ll N=1000006;
int n, m, M, q, o, ans;
string x, y;

int main(){ios_base::sync_with_stdio(false), cin.tie(0);
	cin>>q;
	while(q--){x="";o=0;
		cin>>n>>m;
		if(n==1){cout<<m<<endl;while(m--)cout<<'-';cout<<'\n';continue;}
		if(m==1){cout<<n<<endl;while(n--)cout<<"+\n";continue;}
		if(n==2){cout<<m<<endl;M=m;while(m--)cout<<'-';cout<<'\n';m=M;while(m--)cout<<'-';cout<<'\n';continue;}
		if(m==2){cout<<n<<endl;while(n--)cout<<"++\n";continue;}
		if(n==3){cout<<m+1<<endl;M=m;while(m--)cout<<'-';cout<<'\n';m=M;while(m--)cout<<'-';cout<<'\n';m=M;while(m--)cout<<'+';cout<<'\n';continue;}
		if(m==3){cout<<n+1<<endl;while(n--)cout<<"++-\n";continue;}
		if(n==4){cout<<m+1<<endl;M=m;while(m--)cout<<'-';cout<<'\n';m=M;while(m--)cout<<'-';cout<<'\n';m=M;while(m--)cout<<'-';cout<<'\n';m=M;while(m--)cout<<'+';cout<<'\n';continue;}
		if(m==4){cout<<n+1<<endl;while(n--)cout<<"+++-\n";continue;}
		
		ans=n+m-2;
		
		if(n%2==0)ans--;
		if(m%2==0)ans--,m--,o=1;
		cout<<ans<<'\n';
		if(n%2==0){for (int i=1; i<=m; i++)cout<<'-';if(o)cout<<'-';cout<<'\n';n--;}
		
		for (int i=1; i<=m/2; i++)x+='-';
		for (int i=1; i<=m/2+1; i++)x+='+';
		if(o)x+='+';
		for (int i=1; i<=n/2; i++)cout<<x<<'\n';
		
		for (int i=0; i<m-1; i++)x[i]='-'; x[m-1]='+';
		cout<<x<<'\n';
		
		x="";
		for (int i=1; i<=m/2; i++)x+='+';
		for (int i=1; i<=m/2; i++)x+='-';
		x+='+';
		if(o)x+='+';
		for (int i=1; i<=n/2; i++)cout<<x<<'\n';
	}

}

Compilation message (stderr)

stones.cpp: In function 'int main()':
stones.cpp:36:3: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
   36 |   for (int i=0; i<m-1; i++)x[i]='-'; x[m-1]='+';
      |   ^~~
stones.cpp:36:38: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for'
   36 |   for (int i=0; i<m-1; i++)x[i]='-'; x[m-1]='+';
      |                                      ^
#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...