比赛 20140423 评测结果 AAAAAAAAAA
题目名称 螺旋方阵 最终得分 100
用户昵称 Cirno 运行时间 0.010 s
代码语言 C++ 内存使用 0.31 MiB
提交时间 2014-04-23 10:53:49
显示代码纯文本
#include<iostream>
#include<cstdio>
using namespace std;
long long request[23][2];
int xxx,yyy;
int i;
int sum;
int n,m;
int dir;
void go(int x,int y,int dir,int len)//右1下2左3上4
{
	xxx=x,yyy=y;
	if(sum==m)
		return;
	if(sum>m)
	{
		int less=sum-m;
		if(dir==4)
			{yyy+=less;return;}
		if(dir==1)
			{xxx+=less;return;}
		if(dir==2)
			{yyy-=less;return;}
		if(dir==3)
			{xxx-=less;return;}
		return;
	}
	sum+=len;
	if(dir==1)
		yyy+=len,go(xxx,yyy,2,len);
	if(dir==2)
		xxx+=len,go(xxx,yyy,3,len);
	if(dir==3)
		yyy-=len+1,sum++,go(xxx,yyy,4,len+2);
	if(dir==4)
		xxx-=len-1,sum--,go(xxx,yyy,1,len);
}
void work(int n,int m)
{
	sum=1;
	go((n+1)/2,(n+1)/2,1,1);
	cout<<xxx<<' '<<yyy<<endl;
	return;	
}
void init()
{
	freopen("spiral.in","r",stdin);
	int T;
	cin>>T;
	for(i=0;i<T;i++)
		cin>>n>>m,work(n,m);
}
int main()
{
	freopen("spiral.out","w",stdout);
	init();
}