QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#814517#9884. Grid Constructionucup-team3510#WA 1ms4752kbC++202.6kb2024-12-14 17:59:252024-12-14 17:59:26

Judging History

This is the latest submission verdict.

  • [2024-12-14 17:59:26]
  • Judged
  • Verdict: WA
  • Time: 1ms
  • Memory: 4752kb
  • [2024-12-14 17:59:25]
  • Submitted

answer

#include <bits/stdc++.h>
using namespace std;
int n,m;char s[1011][1011];
namespace constr
{
	int n,m;
	char s[1011][1011];
	char x[11]="><^v.";
	bool has=0;
	void dfs(int i,int j)
	{
		if(i==n+1&&j==1)
		{
			// for(int i=1;i<=n;++i){for(int j=1;j<=m;++j)printf("%c",s[i][j]);putchar(10);}
			has=1;return;
		}
		for(int _=0;_<5;++_)
		{
			s[i][j]=x[_];
			bool ol=s[i][j-1]=='.'||s[i][j-1]=='<',ou=s[i-1][j]=='^'||s[i-1][j]=='.';
			bool il=s[i][j]=='.'||s[i][j]=='>',iu=s[i][j]=='.'||s[i][j]=='v';
			if(ol+il!=1||ou+iu!=1)continue;
			if(j==m&&s[i][j]!='.'&&s[i][j]!='<')continue;
			if(i==n&&s[i][j]!='.'&&s[i][j]!='^')continue;
			if(j==m)dfs(i+1,1);
			else dfs(i,j+1);
			if(has)return;
		}
	}
	void proc()
	{
		for(int i=1;i<=n;++i)s[i][0]='>',s[i][m+1]='<';
		for(int i=1;i<=m;++i)s[0][i]='v',s[n+1][i]='^';
		dfs(1,1);
	}
}
char rotate(char c)
{
	if(c=='.')return '.';
	if(c=='^'||c=='<')return c^'^'^'<';
	if(c=='>'||c=='v')return c^'>'^'v';
	return 0;
}
int main()
{
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;++i)for(int j=1;j<=m;++j)s[i][j]='.';
	if(n%6!=m%6){printf("No\n");return 0;}
	if(n%6==1||n%2==0){printf("No\n");return 0;}
	if(n%6==3)
	{
		if(n==3&&m==3)
		{
			puts("Yes");
			puts("<<^");
			puts("v.^");
			puts("v>>");
			return 0;
		}
		else if(min(n,m)==5){printf("No\n");return 0;}
	}
	else
	{
		if(n==5&&m==5)
		{
			puts("Yes");
			puts("<<<<^");
			puts("v.v.^");
			puts("v>.<^");
			puts("v.^.^");
			puts("v>>>>");
			return 0;
		}
		else if(min(n,m)==5){printf("No\n");return 0;}
	}
		int X=0,Y=0;
		int nn=n,mm=m;
		while(min(n,m)>11)
		{
			for(int i=1;i<n;++i)s[X+i][Y+m]='^';
			for(int i=2;i<=n;++i)s[X+i][Y+1]='v';
			for(int i=1;i<m;++i)s[X+1][Y+i]='<';
			for(int i=2;i<=m;++i)s[X+n][Y+i]='>';
			for(int i=3;i<n;i+=2)s[X+i][Y+2]='>',s[X+i][Y+m-1]='<';
			for(int i=3;i<m;i+=2)s[X+2][Y+i]='v',s[X+n-1][Y+i]='^';
			for(int i=4;i<n-1;i+=2)s[X+i][Y+3]='<',s[X+i][Y+m-2]='>';
			for(int i=4;i<m-1;i+=2)s[X+3][Y+i]='^',s[X+n-2][Y+i]='v';
			n-=6;m-=6;X+=3;Y+=3;
		}
		for(int i=1;i<n;++i)s[X+i][Y+m]='^';
		for(int i=2;i<=n;++i)s[X+i][Y+1]='v';
		for(int i=1;i<m;++i)s[X+1][Y+i]='<';
		for(int i=2;i<=m;++i)s[X+n][Y+i]='>';
		++X;++Y;
		n-=2;m-=2;
		bool flg=0;
		constr::n=max(n,m),constr::m=min(n,m);
		constr::proc();
		// printf("n:%d m:%d X:%d Y:%d\n",n,m,X,Y);
		if(n<m)
		{
			for(int i=1;i<=n;++i)for(int j=1;j<=m;++j)s[X+i][Y+j]=rotate(constr::s[j][i]);
		}
		else
		{
			for(int i=1;i<=n;++i)for(int j=1;j<=m;++j)s[X+i][Y+j]=constr::s[i][j];
		}//printf("ny\n");
	// printf("ntov\n");
	puts("Yes");
	for(int i=1;i<=nn;++i)printf("%s\n",s[i]+1);
}

詳細信息

Test #1:

score: 100
Accepted
time: 0ms
memory: 3648kb

input:

3 3

output:

Yes
<<^
v.^
v>>

result:

ok Correct

Test #2:

score: 0
Accepted
time: 0ms
memory: 3788kb

input:

4 4

output:

No

result:

ok Correct : No

Test #3:

score: 0
Accepted
time: 0ms
memory: 3856kb

input:

4 5

output:

No

result:

ok Correct : No

Test #4:

score: 0
Accepted
time: 0ms
memory: 3872kb

input:

11 17

output:

Yes
<<<<<<<<<<<<<<<<^
v.v.v.v.v.v.v.v.^
v>.<v>.^.<v>.^.<^
v.^.v.^>>.v.^>>.^
v>>>.<^.v>.<<v.<^
v.v.^.<^.v>.v.^.^
v>.^>>.<^.v>.<<<^
v.<<v.^.<<v.^.v.^
v>.v.<^>.v.<^>.<^
v.^.^.^.^.^.^.^.^
v>>>>>>>>>>>>>>>>

result:

ok Correct

Test #5:

score: 0
Accepted
time: 1ms
memory: 4752kb

input:

1000 1000

output:

No

result:

ok Correct : No

Test #6:

score: 0
Accepted
time: 0ms
memory: 3852kb

input:

6 6

output:

No

result:

ok Correct : No

Test #7:

score: 0
Accepted
time: 0ms
memory: 3788kb

input:

7 7

output:

No

result:

ok Correct : No

Test #8:

score: 0
Accepted
time: 0ms
memory: 3864kb

input:

8 8

output:

No

result:

ok Correct : No

Test #9:

score: 0
Accepted
time: 0ms
memory: 3836kb

input:

9 9

output:

Yes
<<<<<<<<^
v.v.v.v.^
v>.<v>.<^
v.^.v.^.^
v>>>.<<<^
v.v.^.v.^
v>.<^>.<^
v.^.^.^.^
v>>>>>>>>

result:

ok Correct

Test #10:

score: -100
Wrong Answer
time: 0ms
memory: 3840kb

input:

3 9

output:

Yes
<<<<<<<<^
v..
v>>>>>>>>

result:

wrong answer Incorrect