#include <iostream>
using namespace std;
int main()
{
const int MaxSize = 30001;
int n, wi, wj, x, y, r;
int **NMap = new int* [MaxSize];
for (int i = 0; i < MaxSize; i++)
NMap[i] = new int [MaxSize];
int dx[4] = {0, 1, 0, -1};
int dy[4] = {1, 0, -1, 0};
cin >> n >> wi >> wj;
x = 0; y = 0; r = 0;
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
NMap[i][j] = 0;
for (int i = 1; i <= n * n; i++)
{
NMap[x][y] = i;
if (x == wi - 1 && y == wj - 1)
break;
if ((x + dx[r] >= n || x + dx[r] < 0) ||
(y + dy[r] >= n || y + dy[r] < 0) ||
NMap[x + dx[r]][y + dy[r]] > 0)
r++;
if (r == 4)
r = 0;
x += dx[r];
y += dy[r];
}
cout << NMap[wi - 1][wj - 1] << endl;
for (int i = 0; i < MaxSize; i++)
delete[] NMap[i];
delete[] NMap;
return 0;
}
10个数据点5个MLE(Memory Limit Exceeded),请问怎样减少内存至125.00MB以下(new
,delete
动态数组都用上了还是不行QAQ)?还有程序怎么在上传前检查内存?