30952023-02-15 16:27:59peterElőzésekcpp17Időlimit túllépés 30/1003.075s5156 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ÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms1432 KiB
subtask230/30
2Elfogadva3ms1696 KiB
3Elfogadva2ms1536 KiB
4Elfogadva3ms1832 KiB
5Elfogadva3ms2036 KiB
6Elfogadva4ms2216 KiB
7Elfogadva4ms2264 KiB
subtask30/70
8Elfogadva1.521s3492 KiB
9Időlimit túllépés3.072s3172 KiB
10Időlimit túllépés3.039s3508 KiB
11Időlimit túllépés3.055s3904 KiB
12Időlimit túllépés3.059s3868 KiB
13Időlimit túllépés3.065s4436 KiB
14Időlimit túllépés3.063s4564 KiB
15Időlimit túllépés3.043s4712 KiB
16Időlimit túllépés3.072s4716 KiB
17Időlimit túllépés3.052s4732 KiB
18Időlimit túllépés3.055s5020 KiB
19Időlimit túllépés3.059s5008 KiB
20Időlimit túllépés3.055s5140 KiB
21Időlimit túllépés3.075s5156 KiB