#include #include #include #include using namespace std; int main() { int hour=0, min=0; double getHour1=0, getMin1=0, getHour2=0, getMin2=0; int t=0; // int ch1, ch2; string noon1, noon2; long double energy=0.0; char h1[6], h2[6]; char conv1[3], conv2[3]; ifstream in; in.open("sunny.in"); FILE* out; out=fopen("sunny.out", "w"); int count=0; in>>count; while(count-- > 0) { in>>h1>>noon1>>h2>>noon2>>t; conv1[0]=h1[0]; conv1[1]=h1[1]; conv1[2]='\0'; conv2[0]=h2[0]; conv2[1]=h2[1]; conv2[2]='\0'; getHour1=atoi(conv1); getHour2=atoi(conv2); conv1[0]=h1[3]; conv1[1]=h1[4]; conv1[2]='\0'; conv2[0]=h2[3]; conv2[1]=h2[4]; conv2[2]='\0'; getMin1=atoi(conv1); getMin2=atoi(conv2); if(noon1 == noon2) { if(getMin2 < getMin1) { min=static_cast(getMin2-getMin1+60); if((hour=static_cast(getHour2-getHour1)) <= 1) { hour=0; } else { hour=static_cast(getHour2-getHour1); } } else { min=static_cast(getMin2-getMin1); if((hour=static_cast(getHour2-getHour1)) <= 0) { hour=0; } else { hour=static_cast(getHour2-getHour1); } } // energy+=hour*t*sqrt((double)t)+((double)min/60)*t*sqrt((double)t); double time=(double)hour; double mins=((double)min/60); energy+=(time+mins)*pow(double(t), 1.5); } else { if(getMin2 < getMin1) { min=static_cast(getMin2-getMin1+60); if((hour=static_cast(getHour2-getHour1)) == 1) { hour=0; } else { hour=static_cast(getHour2-getHour1+11); } } else { min=static_cast(getMin2-getMin1); if((hour=static_cast(getHour2-getHour1)) == 0) { hour=0; } else { hour=static_cast(getHour2-getHour1+12); } } // energy+=hour*t*sqrt((double)t)+((double)min/60)*t*sqrt((double)t); double time=(double)hour; double mins=((double)min/60); energy+=(time+mins)*pow(double(t), 1.5); } } printf("%.3f\n", energy); fprintf(out, "%.3f\n", energy); in.close(); fclose(out); return 0; }