3095 2023. 02. 15 16:27:59 peter Előzések cpp17 Time limit exceeded 30/100 3.075s 5156 KiB
/**
 * időlimit túllépés 
 **/

#include <stdlib.h>
#include <stdio.h>

typedef struct Driver {
    int driverNum;
    int overtakenCount;
} Driver;

int driversCount;
int overtake(Driver* drivers, int overtaker) {
    int overtakerIndex = 1;
    while (overtakerIndex < driversCount && drivers[overtakerIndex].driverNum != overtaker)
    {
        overtakerIndex++;
    }
    Driver swap = drivers[overtakerIndex];
    drivers[overtakerIndex] = drivers[overtakerIndex - 1];
    drivers[overtakerIndex - 1] = swap;
    drivers[overtakerIndex].overtakenCount++;
    return overtakerIndex;
}

int main() {
    int overtakesCount;
    scanf("%d%d", &driversCount, &overtakesCount);

    Driver* drivers = (Driver*)malloc(sizeof(Driver)*driversCount);
    for (int i = 0; i < driversCount; i++)
    {
        scanf("%d", &drivers[i].driverNum);
        drivers[i].overtakenCount = 0;
    }

    int* overtakes = (int*)malloc(sizeof(int)*overtakesCount);
    Driver mostOvertaken = drivers[1];
    for (int i = 0; i < overtakesCount; i++)
    {
        scanf("%d", &overtakes[i]);
        int overtaken = overtake(drivers, overtakes[i]);
        
        if (drivers[overtaken].overtakenCount > mostOvertaken.overtakenCount)
        {
            mostOvertaken = drivers[overtaken];
        }
        else if (drivers[overtaken].overtakenCount == mostOvertaken.overtakenCount && drivers[overtaken].driverNum < mostOvertaken.driverNum)
        {
            mostOvertaken = drivers[overtaken];
        }
        printf("%d\n", mostOvertaken.driverNum);
    }

    free(drivers);
    free(overtakes);
    return 0;
}
Subtask Sum Test Verdict Time Memory
subtask1 0/0
1 Accepted 3ms 1432 KiB
subtask2 30/30
2 Accepted 3ms 1696 KiB
3 Accepted 2ms 1536 KiB
4 Accepted 3ms 1832 KiB
5 Accepted 3ms 2036 KiB
6 Accepted 4ms 2216 KiB
7 Accepted 4ms 2264 KiB
subtask3 0/70
8 Accepted 1.521s 3492 KiB
9 Time limit exceeded 3.072s 3172 KiB
10 Time limit exceeded 3.039s 3508 KiB
11 Time limit exceeded 3.055s 3904 KiB
12 Time limit exceeded 3.059s 3868 KiB
13 Time limit exceeded 3.065s 4436 KiB
14 Time limit exceeded 3.063s 4564 KiB
15 Time limit exceeded 3.043s 4712 KiB
16 Time limit exceeded 3.072s 4716 KiB
17 Time limit exceeded 3.052s 4732 KiB
18 Time limit exceeded 3.055s 5020 KiB
19 Time limit exceeded 3.059s 5008 KiB
20 Time limit exceeded 3.055s 5140 KiB
21 Time limit exceeded 3.075s 5156 KiB