/* ID: mytbk921 LANG: C TASK: milk2 */ #include #include #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=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; }