ZOJ-3317

来源:互联网 发布:java中方法的意思 编辑:程序博客网 时间:2024/06/15 06:32

模拟水题,按check in的日期排下序然后依次遍历处理下就over了

#include<stdio.h>#include<stdlib.h>#include<string.h>struct Renter{    int index;    int in;    int out;};int cmp3317(const void *p1, const void *p2){    struct Renter *r1 = (struct Renter *) p1;    struct Renter *r2 = (struct Renter *) p2;    return r1->in - r2->in;}int main(){    int n, m, room[100], ans[100];    while (scanf("%d %d", &n, &m), n && m)    {        struct Renter *array = malloc(n * sizeof(struct Renter));        int i, j;        for (i = 0; i < n; i++)        {            array[i].index = i;            scanf("%d %d", &(array[i].in), &(array[i].out));        }        qsort(array, n, sizeof(struct Renter), cmp3317);        memset(room, 0, 100 * sizeof(int));        for (i = 0; i < n; i++)        {            int in = array[i].in;            int index = array[i].index;            for (j = 0; j < m; j++)                if (room[j] <= in)                {                    room[j] = array[i].out;                    ans[index] = j + 1;                    break;                }            if (j == m)                ans[index] = 0;        }        for (i = 0; i < n; i++)            printf("%d\n", ans[i]);        free(array);    }    return 0;}


0 0