diff options
author | Iru Cai <mytbk920423@gmail.com> | 2018-04-16 19:06:32 +0800 |
---|---|---|
committer | Iru Cai <mytbk920423@gmail.com> | 2018-04-16 19:06:32 +0800 |
commit | ad4e2420e822b8a115aac6124307b89447578782 (patch) | |
tree | 6f4db875081597e2e64dd4221a97bbff25503dcc /1.3/milk2.c | |
parent | a7721767628a51b752ad3a96eb334734241dcd8b (diff) | |
download | usaco-ad4e2420e822b8a115aac6124307b89447578782.tar.xz |
1.2~1.5
Diffstat (limited to '1.3/milk2.c')
-rw-r--r-- | 1.3/milk2.c | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/1.3/milk2.c b/1.3/milk2.c new file mode 100644 index 0000000..4573334 --- /dev/null +++ b/1.3/milk2.c @@ -0,0 +1,58 @@ +/* +ID: mytbk921 +LANG: C +TASK: milk2 +*/ + +#include <stdio.h> +#include <stdlib.h> +#define MAXN 5000 +#define max(a,b) ((a)>(b))?(a):(b) + +typedef struct +{ + int begin,end; +}TimeTab,*pTimeTab; + +int comp(pTimeTab a,pTimeTab b) +{ + return a->begin-b->begin; +} + +int main() +{ + int N; + int max_milk,max_nomilk; + int tBegin,tEnd; + int i; + TimeTab milktime[MAXN]; + + FILE *fin=fopen("milk2.in","r"); + FILE *fout=fopen("milk2.out","w"); + fscanf(fin,"%d",&N); + for (i=0;i<N;++i) + fscanf(fin,"%d%d",&milktime[i].begin,&milktime[i].end); + fclose(fin); //input complete + qsort(milktime,N,sizeof(TimeTab),(int(*)(const void*,const void*))comp); + + max_milk=milktime[0].end-milktime[0].begin; + max_nomilk=0; + tBegin=milktime[0].begin;tEnd=milktime[0].end; + for (i=0;i<N;i++){ + if (tEnd>=milktime[i].begin) + tEnd=max(tEnd,milktime[i].end); + else{ + max_milk=max(tEnd-tBegin,max_milk); + max_nomilk=max(milktime[i].begin-tEnd,max_nomilk); + tBegin=milktime[i].begin; + tEnd=milktime[i].end; + } + if (i==N-1) + max_milk=max(tEnd-tBegin,max_milk); + } + fprintf(fout,"%d %d\n",max_milk,max_nomilk); + fclose(fout); //output complete + return 0; +} + + |