TEMA

Wrong answer (40%)

Pedro Henrique preguntado 9 months ago

Não entendo porque está dando erro nas outras. Alguem pode me ajudar?

#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
typedef struct{
    int A, B, C, D;
}Plan;
typedef struct{
    int x, y, z, menorq, maiorq;
}Point;
int cmp(void* a, void* b)
{
    Plan* A = (Plan**)a;
    Plan* B = (Plan**)b;
    return (A->D) - (B->D);
}
int cmp2(void* a, void* b)
{
    Point* A = (Point**)a;
    Point* B = (Point**)b;
    return (A->menorq) - (B->menorq);
}

int main() 
{
    int plans, points;
    scanf("%d %d", &plans, &points);
    Plan pl[plans];
    Point pt[points];
    for(int i = 0; i < plans; i++)
    {
        scanf("%d %d %d %d", &pl[i].A, &pl[i].B, &pl[i].C, &pl[i].D);
    }
    for(int i = 0; i < points; i++)
    {
        scanf("%d %d %d", &pt[i].x, &pt[i].y, &pt[i].z);
        pt[i].menorq = 0;
        pt[i].maiorq = 0;
    }
    qsort(pl, plans, sizeof(Plan), cmp);

    for(int p = 0; p < points; p++)
    {
        for(int i = 0; i < plans; i++)
        {
            int temp = pl[i].A*pt[p].x + pl[i].B*pt[p].y + pl[i].C*pt[p].y;
            if(temp < pl[i].D)
            {
                pt[p].menorq++;
            }
            else
            {
                pt[p].maiorq++;
            }
        }
    }
    qsort(pt, points, sizeof(Point), cmp2);
    int kk = 0, temp = 0;
    for(int i = 0; i < points - 1; i++)
    {
        if(pt[i].menorq == pt[i + 1].menorq && pt[i].maiorq == pt[i + 1].maiorq)
        {
            temp++;
        }
        else 
        {
            kk = (temp > kk) ? temp : kk;
            temp = 0;
        }
        //printf("%d %d\n", kk,temp);
    }
    if(kk)kk++;
    printf("%d", kk);
    return 0;
}

Este tema aún no ha sido contestado. ¡Sé el primero!

Recuerda no enviar soluciones. Tu mensaje puede ser revisado por nuestros moderadores.