Post
by zaman » Sun Jan 07, 2007 10:15 pm
I've tested the inputs in the forum. But still getting wrong answer.Please suggest any sample input that doesn't pass it .Here is my code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void INSERT_SORT(int *l,int lim){
int j,i,key;
for(j=1;j<lim;j++){
key=l[j];
i=j-1;
while(i>-1&&l>key){
l[i+1]=l;
i=i-1;
l[i+1]=key;
}
}
}
void main(){
int s, i, temp, nap_duration, nap_start[102], nap_finish[102], nap_start1, nap_finish1,day = 1; char ch[300],*token;
bool flag = false;
//freopen("G:\\input.txt","r",stdin);
while( scanf("%d", &s) != EOF){
if(flag == true )
printf("\n");
flag =true;
//strcpy(starting_time, "10:00");
nap_start[0] = 600;
nap_duration = 0;
gets(ch);
for( i = 1; i <= s ; i++ ){
gets(ch);
token = strtok( ch," ");
nap_finish = ((( token[0] - '0' ) *10 + ( token[1] - '0' )) *60 ) + (( token[3] - '0' ) *10 + ( token[4] - '0' ));
token = strtok( NULL," ");
nap_start = ((( token[0] - '0' ) *10 + ( token[1] - '0' )) *60 ) + (( token[3] - '0' ) *10 + ( token[4] - '0' ));
}
INSERT_SORT(nap_finish,i);
INSERT_SORT(nap_start,i);
nap_finish = 1080 ;
for( int i = 1; i <= s ; i++ ){
temp = nap_finish - nap_start[i-1];
if( nap_duration < temp ){
nap_duration = temp;
nap_start1 = nap_start[i-1];
nap_finish1 = nap_finish;
}
}
temp = (nap_finish - nap_start[i-1]);
if( nap_duration < temp ){
nap_duration = temp;
nap_start1 = nap_start[i-1];
nap_finish1 = nap_finish;
}
printf("Day #%d: the longest nap starts at %d:",day,(nap_start1/60));
if((nap_start1%60) < 10)
printf("0%d and will last for ",(nap_start1%60));
else
printf("%d and will last for ",(nap_start1%60));
if( nap_duration < 60)
printf("%d minutes.",nap_duration);
else
printf("%d hours and %d minutes.",(nap_duration/60),(nap_duration%60));
day++;
}
}
thanks in advance.
Keep in posting...