来源:牛客网
题目描述
现在A君在左下角,他的初始方向是向右,他要在正方形内走m步
输入描述:
输入一行两个整数n和m。
输出描述:
输出一行两个数表示A君的坐标。
备注:
n<=1000,m<n*n
其实是简单的签到题,我居然在一开始就审题错误,然后就没有思路怎么样模拟过程,难道是英文题做多了??
最后看了一下别人的代码,忽然恍然大悟!!
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <algorithm>
#include <vector>
#include <map>
using namespace std;
int a[1010][1010];
int main()
{
int n,m;
int x=1,y=1;
cin>>n>>m;
while(m){
while(m>0&&(x+1<=n)&&(!a[x+1][y])){
m--;
x++;a[x][y]=1;
}
while(m>0&&x-1>=1&&(!a[x-1][y])){
m--;x--;a[x][y]=1;
}
while(m>0&&y+1<=n&&(!a[x][y+1])){
m--;y++;a[x][y]=1;
}
while(m>0&&y-1>=2&&(!a[x][y-1])){
m--;y--;a[x][y]=1;
}
}
cout<<x<<" "<<y<<endl;
return 0;
}
模拟题需要多写才行。