Submission
Status:
[-SSSSSSSSS]
Score: 0
User: KhunKK9722
Problemset: Path Finding
Language: cpp
Time: 0.001 second
Submitted On: 2025-03-13 13:48:52
#include <stdio.h>
int size;
int n;
int currentR, currentC, lastR, lastC, difR, difC;
char letter = 65; // start with 'A'
int right = false;
int up = false;
int cursorR;
int cursorC;
int compare()
{
if (lastR - currentR < 0)
{
difC = (lastR - currentR) * -1;
up = 0;
}
else
{
difC = (lastR - currentR);
up = 1;
}
if (lastC - currentC < 0)
{
difR = (lastC - currentC) * -1;
right = 0;
}
else
{
difR = (lastC - currentC);
right = 1;
}
return 0;
}
int main()
{
scanf("%d", &size); // input size
char map[size][size] = {};
scanf("%d", &n); // input amount of positions
for (int i = 0; i < n; i++)
{
scanf("%d %d", ¤tR, ¤tC); // input position
if (i > 0)
{
cursorR = lastC;
cursorC = lastR;
compare();
printf("\n%c and %c\n",letter-1,letter);
switch (right)
{
case 0:
for (int i = 0; i < difR; i++)
{
if(map[cursorR][cursorC]<65||map[cursorR][cursorC]>91)
map[cursorR][cursorC] = '>';
cursorR++;
}
break;
case 1:
for (int i = 0; i < difR; i++)
{
if(map[cursorR][cursorC]<65||map[cursorR][cursorC]>91)
map[cursorR][cursorC] = '<';
cursorR--;
}
break;
default:
for (int i = 0; i < difR; i++)
{
if(map[cursorR][cursorC]<65||map[cursorR][cursorC]>91)
map[cursorR][cursorC] = '>';
cursorR++;
}
break;
}
switch (up)
{
case 1:
for (int i = 0; i < difC; i++)
{
if(map[cursorR][cursorC]<65||map[cursorR][cursorC]>91)
map[cursorR][cursorC] = '^';
cursorC--;
}
break;
case 0:
for (int i = 0; i < difC; i++)
{
if(map[cursorR][cursorC]<65||map[cursorR][cursorC]>91)
map[cursorR][cursorC] = 'v';
cursorC++;
}
break;
default:
for (int i = 0; i < difC; i++)
{
if(map[cursorR][cursorC]<65||map[cursorR][cursorC]>91)
map[cursorR][cursorC] = '^';
cursorC--;
}
break;
}
}
map[currentC][currentR] = letter;
letter++;
lastR = currentR;
lastC = currentC;
printf("\n\n");
}
printf("\n\n\n");
for (int i = 0; i < size; i++)
{
for (int j = 0; j < size; j++)
{
if (map[j][i] == NULL)
printf("_");
else
printf("%c", map[j][i]);
}
printf("\n");
}
return 0;
}