#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,m,k;
char c[5001][5001];
inline void op()
{
cout<<"Yes\n";
for(int i=1;i<=2*n+1;i++)
{
for(int j=1;j<=2*m+1;j++)
putchar(c[i][j]);
cout<<endl;
}
}
signed main()
{
// ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
cin>>n>>m>>k;
if(k<n||n%2!=k%2) return cout<<"No",0;
for(int i=1;i<=2*n+1;i++)
for(int j=1;j<=2*m+1;j++)
c[i][j]='.';
for(int i=2;i<=2*n+1;i+=2)
for(int j=2;j<=2*m+1;j+=2)
c[i][j]='o';
for(int i=1;i<=2*n+1;i+=2)
for(int j=1;j<=2*m+1;j+=2)
c[i][j]='+';
for(int i=1;i<=2*n+1;i+=2*n)
for(int j=1;j<=2*m+1;j++) c[i][j]='+';
for(int i=1;i<=2*n+1;i++)
for(int j=1;j<=2*m+1;j+=2*m) c[i][j]='+';
c[1][2*m]='S',c[2*n+1][2*m]='G';
if(m==1){op();return 0;}
if(n%2==0||k<=n*m-m+1)
{
int s=(k-n)/2/(m-1),r=(k-n)/2%(m-1),st=s;if(r) st++;
for(int i=2*n,_=s;_>0;_--,i-=4)
{
for(int j=4;j<=2*m;j+=2) c[i-1][j]='-';
for(int j=2;j<=2*m-2;j+=2) c[i-3][j]='-';
}
if(r>0)
{
int i=2*n-s*4;
c[i][2*m+1-2*r-2]=c[i-2][2*m+1-2*r-2]='|';
for(int j=2*m+1-2*r-2+3;j<=2*m;j+=2) c[i-1][j]='-';
for(int j=2*m+1-2*r-2+1;j<=2*m-2;j+=2) c[i-3][j]='-';
}
for(int i=2*n-4*st;i>=2;i-=2) c[i][2*m-1]='|';
}
else
{
int s=(n-1)/2;
for(int i=2*n,_=s;_>0;_--,i-=4)
{
for(int j=4;j<=2*m;j+=2) c[i-1][j]='-';
for(int j=2;j<=2*m-2;j+=2) c[i-3][j]='-';
}
int r=(k-n*m+m-1)/2;
for(int i=1;i<=r;i++)
{
c[2][1+4*i]='|';
c[4][4*i-1]='|';
c[3][4*i-2]=c[3][4*i]='.';
}
}
op();
return 0;
}
本地能过三个样例,交上去判我两个样例 WA,怎么会是呢?