Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
各位,看看,wa哪里了??#include <stdio.h> #include <stdlib.h> #include <string.h> #define M 50005 struct Data { int start, end, numbercows; }; Data sent[M], back[M]; int k, n, c, s, b, result; int cmp(const void *a , const void *b) { struct Data *c = (Data *)a; struct Data *d = (Data *)b; if (c->end != d->end) { return c->end - d->end; } return d->start - c->start; } void init() { int i, a, bb, cc; for (i = 0, s = 0, b = 0; i < k; i++) { scanf("%d%d%d", &a, &bb, &cc); if (a <= bb) { sent[s].start = a; sent[s].end = bb; sent[s++].numbercows = cc; } else { back[b].start = bb; back[b].end = a; back[b++].numbercows = cc; } } } void solve(Data process[], int p) { int i, j, k; qsort(process, p, sizeof(process[0]), cmp); for (i = 1; i <= c; i++) { for (j = 0, k = 0; j < p; j++) { if (process[j].start >= k && process[j].numbercows > 0) { k = process[j].end; process[j].numbercows--; result++; } } } } int main() { while (scanf("%d%d%d", &k, &n, &c) > 0) { memset(sent, 0, sizeof(sent)); memset(back, 0, sizeof(back)); init(); result = 0; solve(sent, s); solve(back, b); printf("%d\n", result); } return 0; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator