Submission

Status:
[-SSSSSSSSS]

Score: 0

User: KhunKK9722

Problemset: Path Finding

Language: cpp

Time: 0.001 second

Submitted On: 2025-03-13 13:45:53

#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
    printf("\n**************************\nCURRENTLY DEBUGGING ARROWS\n**************************");
    for (int i = 0; i < n; i++)
    {
        scanf("%d %d", &currentR, &currentC); // input position
        if (i > 0)
        {   
            cursorR = lastC;
            cursorC = lastR;
            compare();

            printf("\n%c and %c\ndifR = %d\ndifC = %d\nright = %d\nup = %d\ncurrentR = %d\ncurrentC = %d\nlastR = %d\nlastC = %d\n",letter-1,letter,difR,difC,right,up,currentR,currentC,lastR,lastC);
            // successful*********************************

            
            printf("\n%c and %c\n",letter-1,letter);
            switch (right)
            {
            case 0:
                for (int i = 0; i < difR; i++)
                {
                    if(map[cursorR][cursorC]==NULL)
                    map[cursorR][cursorC] = '>';
                    cursorR++;
                }
                break;
            case 1:
                for (int i = 0; i < difR; i++)
                {
                    if(map[cursorR][cursorC]==NULL)
                    map[cursorR][cursorC] = '<';
                    cursorR--;
                }
                break;
            default:
                for (int i = 0; i < difR; i++)
                {
                    if(map[cursorR][cursorC]==NULL)
                    map[cursorR][cursorC] = '>';
                    cursorR++;
                }
                break;
            }
            switch (up)
            {
            case 1:
                for (int i = 0; i < difC; i++)
                {
                    if(map[cursorR][cursorC]==NULL)
                    map[cursorR][cursorC] = '^';
                    cursorC--;
                }
                break;
            case 0:
                for (int i = 0; i < difC; i++)
                {
                    if(map[cursorR][cursorC]==NULL)
                    map[cursorR][cursorC] = 'v';
                    cursorC++;
                }
                break;
            default:
                for (int i = 0; i < difC; i++)
                {
                    if(map[cursorR][cursorC]==NULL)
                    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;
}