| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
实在没办法了···超时了5次···re了6次····各位帮忙看看···(c代码)···#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int comp(const void *, const void *);
main()
{
char str[100][20];
int i,j,k,r1,r2,count1=0,count2=0,flag;
__int64 tim[100];
float sum[1000000];
struct
{
__int64 tf;
float quaf;
}co[100];
struct
{
__int64 tl;
float qual;
}cl[100];
memset(sum,0,sizeof(sum));
i=0;
while(scanf("%s",str[i])!=EOF)
{
if(str[i][0]=='Q')
{
scanf("%I64d",&tim[i]);
i++;
}
if(strcmp(str[i],"Chocolate")==0)
{
scanf("%I64d%f",&cl[count1].tl,&cl[count1].qual);
count1++;
}
if(strcmp(str[i],"Coffee")==0)
{
scanf("%I64d%f",&co[count2].tf,&co[count2].quaf);
count2++;
}
}
for(j=0;j<i;j++)
{
r1=r2=0;
flag=0;
for(k=0;k<j;k++)
{
if(tim[j]==tim[k])
{
flag=1;
sum[tim[j]]=sum[tim[k]];
}
}
if(flag==0)
{
while(tim[j]>=co[r1].tf && r1<count2)
{
if(2.0*co[r1].quaf-1.0*(tim[j]-co[r1].tf)*(tim[j]-co[r1].tf)/79.0>0)
{
sum[tim[j]]+=2.0*co[r1].quaf-1.0*(tim[j]-co[r1].tf)*(tim[j]-co[r1].tf)/79.0;
}
r1++;
}
while(tim[j]>=cl[r2].tl && r2<count1)
{
if(8.0*cl[r2].qual-1.0*(tim[j]-cl[r2].tl)/12.0>0)
{
sum[tim[j]]+=8.0*cl[r2].qual-1.0*(tim[j]-cl[r2].tl)/12.0;
}
r2++;
}
}
}
qsort(tim,i,sizeof(__int64),comp);
for(j=0;j<i;j++)
{
if(sum[tim[j]]<1)
printf("%I64d 1.0\n",tim[j]);
else
printf("%I64d %.1f\n",tim[j],sum[tim[j]]);
}
}
int comp(const void *p, const void *q)
{
return (*(__int64 *)p - *(__int64 *)q);
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator