# include <stdio.h>
# include <malloc.h>
# include <string.h>
typedef struct node
{
char c[15];
int a[4];
bool cf;
}Node,*Pnode;
typedef struct data
{
int sum;
int begin[10],end[10];
int t;
}Data,*Pdata;
double trun(int*a);
void sort(Pnode base, int T);
void xianshi(Pnode base);
void jifei(Pnode base,int T);
int money(Pnode base,int i,int j);
int main()
{
int T=10;
Pnode base=(Pnode)malloc(sizeof(Node)*T);
strcpy(base[0].c,"CYLL");
base[0].cf=1;
base[0].a[0]=01;
base[0].a[1]=01;
base[0].a[2]=06;
base[0].a[3]=01;
strcpy(base[1].c,"CYLL");//为了调试方便 直接赋值了
base[1].cf=0;
base[1].a[0]=01;
base[1].a[1]=28;
base[1].a[2]=16;
base[1].a[3]=05;
strcpy(base[2].c,"CYJJ");
base[2].cf=0;
base[2].a[0]=01;
base[2].a[1]=01;
base[2].a[2]=07;
base[2].a[3]=00;
strcpy(base[3].c,"CYLL");
base[3].cf=0;
base[3].a[0]=01;
base[3].a[1]=01;
base[3].a[2]=8;
base[3].a[3]=03;
strcpy(base[4].c,"CYJJ");
base[4].cf=1;
base[4].a[0]=01;
base[4].a[1]=01;
base[4].a[2]=05;
base[4].a[3]=59;
strcpy(base[5].c,"aaa");
base[5].cf=1;
base[5].a[0]=01;
base[5].a[1]=01;
base[5].a[2]=01;
base[5].a[3]=03;
strcpy(base[6].c,"aaa");
base[6].cf=1;
base[6].a[0]=01;
base[6].a[1]=02;
base[6].a[2]=00;
base[6].a[3]=01;
strcpy(base[7].c,"CYLL");
base[7].cf=1;
base[7].a[0]=01;
base[7].a[1]=28;
base[7].a[2]=15;
base[7].a[3]=41;
strcpy(base[8].c,"aaa");
base[8].cf=1;
base[8].a[0]=01;
base[8].a[1]=05;
base[8].a[2]=02;
base[8].a[3]=24;
strcpy(base[9].c,"aaa");
base[9].cf=0;
base[9].a[0]=01;
base[9].a[1]=04;
base[9].a[2]=23;
base[9].a[3]=59;
xianshi(base);
sort(base,T);
printf("--------\n");
xianshi(base);
printf("--------\n");
jifei(base,T);
return 0;
}
void sort(Pnode base, int T)
{
Node tmp;
bool change=true;
for(int i=0;i<T&&change;i++)
{
change=false;
for(int j=T-1;j>i;j--)
{
if(trun(base[j].a)<trun(base[j-1].a))
{
tmp=base[j];
base[j]=base[j-1];
base[j-1]=tmp;
change=true;
}
}
}
}
double trun(int*a)
{
double b=a[1]*24*60+a[2]*60+a[3];
return b;
}
void xianshi(Pnode base)
{
for(int i=0;i<10;i++)
{
//if(base[i].cf)
printf("%s%02d:%02d:%02d:%02d %d\n",base[i].c,base[i].a[0],base[i].a[1],base[i].a[2],base[i].a[3],base[i].cf);
}
}
void jifei(Pnode base,int T)
{
for(int i=0;i<T;i++)
{
if(base[i].cf)
{
for(int j=i+1;j<T;j++)
{
if(!strcmp(base[i].c,base[j].c))
{
if(base[j].cf)
break;
if(!base[j].cf)
{
printf("%s %02d:%02d:%02d:%02d %02d:%02d:%02d:%02d %d\n",base[i].c,base[i].a[0],base[i].a[1],base[i].a[2],base[i].a[3],base[j].a[0],base[j].a[1],base[j].a[2],base[j].a[3],money(base,i,j));
}
}
}
}
}
}
int money(Pnode base,int i,int j)
{
int tmp[24]={10,10,10,10,10,10,20,20,20,15,15,15,15,15,15,15,20,30,20,15,15,10,10,10};
int b[4];
int sum=0,t=0;
for(int k=0;k<4;k++)
{
b[k]=base[i].a[k];
}
while(trun(b)!=trun(base[j].a))
{
b[3]++;
sum=sum+tmp[b[2]];
if(b[3]>=60)
{
b[3]=0;
b[2]++;
}
if(b[2]>=24)
{
b[2]=0;
b[1]++;
}
}
return sum;
}
# include <malloc.h>
# include <string.h>
typedef struct node
{
char c[15];
int a[4];
bool cf;
}Node,*Pnode;
typedef struct data
{
int sum;
int begin[10],end[10];
int t;
}Data,*Pdata;
double trun(int*a);
void sort(Pnode base, int T);
void xianshi(Pnode base);
void jifei(Pnode base,int T);
int money(Pnode base,int i,int j);
int main()
{
int T=10;
Pnode base=(Pnode)malloc(sizeof(Node)*T);
strcpy(base[0].c,"CYLL");
base[0].cf=1;
base[0].a[0]=01;
base[0].a[1]=01;
base[0].a[2]=06;
base[0].a[3]=01;
strcpy(base[1].c,"CYLL");//为了调试方便 直接赋值了
base[1].cf=0;
base[1].a[0]=01;
base[1].a[1]=28;
base[1].a[2]=16;
base[1].a[3]=05;
strcpy(base[2].c,"CYJJ");
base[2].cf=0;
base[2].a[0]=01;
base[2].a[1]=01;
base[2].a[2]=07;
base[2].a[3]=00;
strcpy(base[3].c,"CYLL");
base[3].cf=0;
base[3].a[0]=01;
base[3].a[1]=01;
base[3].a[2]=8;
base[3].a[3]=03;
strcpy(base[4].c,"CYJJ");
base[4].cf=1;
base[4].a[0]=01;
base[4].a[1]=01;
base[4].a[2]=05;
base[4].a[3]=59;
strcpy(base[5].c,"aaa");
base[5].cf=1;
base[5].a[0]=01;
base[5].a[1]=01;
base[5].a[2]=01;
base[5].a[3]=03;
strcpy(base[6].c,"aaa");
base[6].cf=1;
base[6].a[0]=01;
base[6].a[1]=02;
base[6].a[2]=00;
base[6].a[3]=01;
strcpy(base[7].c,"CYLL");
base[7].cf=1;
base[7].a[0]=01;
base[7].a[1]=28;
base[7].a[2]=15;
base[7].a[3]=41;
strcpy(base[8].c,"aaa");
base[8].cf=1;
base[8].a[0]=01;
base[8].a[1]=05;
base[8].a[2]=02;
base[8].a[3]=24;
strcpy(base[9].c,"aaa");
base[9].cf=0;
base[9].a[0]=01;
base[9].a[1]=04;
base[9].a[2]=23;
base[9].a[3]=59;
xianshi(base);
sort(base,T);
printf("--------\n");
xianshi(base);
printf("--------\n");
jifei(base,T);
return 0;
}
void sort(Pnode base, int T)
{
Node tmp;
bool change=true;
for(int i=0;i<T&&change;i++)
{
change=false;
for(int j=T-1;j>i;j--)
{
if(trun(base[j].a)<trun(base[j-1].a))
{
tmp=base[j];
base[j]=base[j-1];
base[j-1]=tmp;
change=true;
}
}
}
}
double trun(int*a)
{
double b=a[1]*24*60+a[2]*60+a[3];
return b;
}
void xianshi(Pnode base)
{
for(int i=0;i<10;i++)
{
//if(base[i].cf)
printf("%s%02d:%02d:%02d:%02d %d\n",base[i].c,base[i].a[0],base[i].a[1],base[i].a[2],base[i].a[3],base[i].cf);
}
}
void jifei(Pnode base,int T)
{
for(int i=0;i<T;i++)
{
if(base[i].cf)
{
for(int j=i+1;j<T;j++)
{
if(!strcmp(base[i].c,base[j].c))
{
if(base[j].cf)
break;
if(!base[j].cf)
{
printf("%s %02d:%02d:%02d:%02d %02d:%02d:%02d:%02d %d\n",base[i].c,base[i].a[0],base[i].a[1],base[i].a[2],base[i].a[3],base[j].a[0],base[j].a[1],base[j].a[2],base[j].a[3],money(base,i,j));
}
}
}
}
}
}
int money(Pnode base,int i,int j)
{
int tmp[24]={10,10,10,10,10,10,20,20,20,15,15,15,15,15,15,15,20,30,20,15,15,10,10,10};
int b[4];
int sum=0,t=0;
for(int k=0;k<4;k++)
{
b[k]=base[i].a[k];
}
while(trun(b)!=trun(base[j].a))
{
b[3]++;
sum=sum+tmp[b[2]];
if(b[3]>=60)
{
b[3]=0;
b[2]++;
}
if(b[2]>=24)
{
b[2]=0;
b[1]++;
}
}
return sum;
}