20012022-12-13 20:20:15KovácsHunorForma-1cpp11Hibás válasz 0/1002.099s3928 KiB
#include "stdio.h"
#include "stdlib.h"

void QuickSort(unsigned long long* arr, int size){
    int pivot = 0;
    for (int i = 1; i < size; i++)
    {
        if(arr[pivot] < arr[i]){
            arr[pivot] ^= arr[pivot+1];
            arr[pivot+1] ^= arr[pivot];
            arr[pivot] ^= arr[pivot+1];
            pivot++;

            if(i != pivot){
                arr[pivot-1] ^= arr[i];
                arr[i] ^= arr[pivot-1];
                arr[pivot-1] ^= arr[i];
            }
        }
    }
    if(pivot > 1)        QuickSort(arr, pivot);
    if(pivot < size-2) QuickSort(arr + (pivot+1), size - (pivot+1) );
}

unsigned long long distance(unsigned long long a, unsigned long long b, unsigned long long c, unsigned long long t){
    return t*t*a + t*b + c;
}

int main()
{
    int n, q;
    scanf("%d", &n);
    int* arr = (int*)malloc(sizeof(int)*n*3);
    for (int i = 0; i < n; i++)
    {
        scanf("%d%d%d", arr + i, arr + i + n, arr + i + 2*n);
    }
    scanf("%d", &q);
    int* sol = (int*)malloc(sizeof(int)*q);
    unsigned long long* dis = (unsigned long long*)malloc(sizeof(unsigned long long)*n);

    for (int i = 0; i < q; i++)
    {
        int p, t;
        scanf("%d%d", &p, &t);
        for (int j = 0; j < n; j++)
        {
            dis[j] = distance(arr[j], arr[j+n], arr[j+2*n], t)*10000 + n-j; 
        }

        QuickSort(dis, n);
        sol[i] = n - dis[p-1]%10000 + 1;
    }
    for (int i = 0; i < q; i++)
    {
        printf("%d\n", sol[i]);
    }
    free(arr);
    free(sol);
    free(dis);
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms1428 KiB
subtask20/20
2Elfogadva75ms2908 KiB
3Elfogadva75ms3112 KiB
4Elfogadva75ms3320 KiB
5Elfogadva72ms3352 KiB
6Elfogadva75ms3484 KiB
7Elfogadva72ms3588 KiB
8Hibás válasz78ms3668 KiB
9Hibás válasz86ms3764 KiB
subtask30/30
10Elfogadva1.707s2804 KiB
11Elfogadva1.819s2848 KiB
12Időlimit túllépés2.059s3024 KiB
13Időlimit túllépés2.075s3208 KiB
14Időlimit túllépés2.079s2820 KiB
15Időlimit túllépés2.043s3064 KiB
16Időlimit túllépés2.075s3404 KiB
17Időlimit túllépés2.048s3676 KiB
18Időlimit túllépés2.086s3760 KiB
subtask40/50
19Időlimit túllépés2.072s3392 KiB
20Időlimit túllépés2.063s3108 KiB
21Időlimit túllépés2.049s3364 KiB
22Időlimit túllépés2.072s3480 KiB
23Időlimit túllépés2.016s3564 KiB
24Időlimit túllépés2.099s3804 KiB
25Időlimit túllépés2.052s3388 KiB
26Időlimit túllépés2.081s3780 KiB
27Időlimit túllépés2.065s3656 KiB
28Időlimit túllépés2.079s3692 KiB
29Időlimit túllépés2.076s3744 KiB
30Időlimit túllépés2.081s3928 KiB