3095 2023. 02. 15 16:27:59 peter Előzések cpp17 Időlimit túllépés 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;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
subtask1 0/0
1 Elfogadva 3ms 1432 KiB
subtask2 30/30
2 Elfogadva 3ms 1696 KiB
3 Elfogadva 2ms 1536 KiB
4 Elfogadva 3ms 1832 KiB
5 Elfogadva 3ms 2036 KiB
6 Elfogadva 4ms 2216 KiB
7 Elfogadva 4ms 2264 KiB
subtask3 0/70
8 Elfogadva 1.521s 3492 KiB
9 Időlimit túllépés 3.072s 3172 KiB
10 Időlimit túllépés 3.039s 3508 KiB
11 Időlimit túllépés 3.055s 3904 KiB
12 Időlimit túllépés 3.059s 3868 KiB
13 Időlimit túllépés 3.065s 4436 KiB
14 Időlimit túllépés 3.063s 4564 KiB
15 Időlimit túllépés 3.043s 4712 KiB
16 Időlimit túllépés 3.072s 4716 KiB
17 Időlimit túllépés 3.052s 4732 KiB
18 Időlimit túllépés 3.055s 5020 KiB
19 Időlimit túllépés 3.059s 5008 KiB
20 Időlimit túllépés 3.055s 5140 KiB
21 Időlimit túllépés 3.075s 5156 KiB