No older revisions available
No older revisions available
~cpp
#include <iostream>
#include <fstream>
using namespace std;
void main()
{
ifstream fin("input.txt");
ofstream fout("output.txt");
int m, n;
fin >> m >> n;
int i, j, k;
int **array = new int*[m];
for (i = 0; i < m; i++)
array[i] = new int[n];
for (i = 0; i < m; i++)
for (j = 0; j < n; j++)
array[i][j] = 0;
int x, y;
fin >> y >> x;
array[y][x] = 1;
while (fin.get() != '\n')
;
char temp;
char dir_arr[80];
int dirsu = 0;
while ((temp = fin.get()) && temp != '\n') //방향있는 한 줄 입력받음
dir_arr[dirsu++] = temp;
int cx = x, cy = y;
bool flag;
int cnt = 0;
for (k = 0; k < dirsu; k++)
{
switch (dir_arr[k])
{
case '7':
cx--;
cy--;
break;
case '0':
cy--;
break;
case '1':
cx++;
cy--;
break;
case '6':
cx--;
break;
case '2':
cx++;
break;
case '5':
cx--;
cy++;
break;
case '4':
cy++;
break;
case '3':
cx++;
cy++;
break;
}
if (cx == -1)
cx = n - 1;
else if (cx == n)
cx = 0;
if (cy == -1)
cy = m - 1;
else if (cy == m)
cy = 0;
array[cy][cx]++;
cnt++;
flag = true;
for (i = 0; i < m; i++)
{
for (j = 0; j < n; j++)
if (array[i][j] == 0)
{
flag = false;
break;
}
if (flag == false)
break;
}
if (flag == false)
continue;
else
break;
}
fout << cnt << endl;
for (i = 0; i < m; i++)
{
for (j = 0; j < n; j++)
fout << array[i][j] << " ";
fout << endl;
}
}