主题:[转帖]2007百度之星5月27号全部初赛题
waterring
[专家分:0] 发布于 2007-05-27 18:53:00
1.百度时间
Baidu的服务器上使用的不是北京时间,而是Baidu时间。Baidu时间的时分秒与北京时间相同,但是日期与北京时间不同,是用一个正整数表示从2000年1月1日开始经过了几天。
现在就请大家设计一个程序将北京时间转换为百度时间。在本题中,闰年的年份是400的倍数,或者是4的倍数但不是100的倍数。比如2000和8888均为闰年,但6100不是。
输入格式
输入数据的每一行为一个待转化的北京时间(不含空格和TAB),正确的格式包括两种:
一种为:YYYY-MM-DD,(YYYY表示四位数年份,MM为两位月份,DD为两位日期);
另一种为:MM YY,(YYYY表示四位数年份,MM为两位月份,DD为两位日期);
输出格式
每个数据输出一行。如果可以成功转换,输出一个正整数,否则输出Error。
输入样例 例
2000-01-01
AStar2007
05/26/2007
输出样例 例
0
Error
2702
评分规则
程序将运行在一台Linux机器上(内存使用不作严格限制),在每一测试用例上运行不能超过1秒,否则该用例不得分;
要求程序能按照输入样例的格式读取标准输入数据,按照输出样例的格式将运行结果输出到标准输出上。如果不能正确读入数据和输出数据,该题将不得分;
该题共有5个测试数据集,数据1和数据2中的所有日期均能成功转换。所有数据中,每行不超过20个字符,每组数据最多包含100行;
最后更新于:2007-05-27 19:29:00
回复列表 (共22个回复)
21 楼
liuwenhan [专家分:20] 发布于 2008-11-26 18:57:00
void shorttime(int** a)
{
int k=number;
int y=0;
int b;
for(int y=0;y<total;y++)
{
if(a[k][1]<1)
k--;
if(k==0 && a[k][1]==0)
break;
if(hand1.shortpower()<hand2.shortpower())
{
if(hand1.nopower()==1)
{
hand1.setleft(a[k][0]);
}
else if(hand1.nopower()==2)
hand1.setright(a[k][0]);
else if(hand1.nopower()==0)
{
if(k==0 && a[k][1]<2)
break;
if(a[k][1]==1)
{
b=a[k][0];
k--;
}
else
{
b=a[k][0];
a[k][1]--;
}
hand1.setdouble(a[k][0],b);
y++;
}
hand2.setcurrent(hand1.shortpower());
}
else if(hand1.shortpower()==hand2.shortpower())
{
if(hand1.longpower()<=hand2.longpower())
{
if(hand1.nopower()==1)
hand1.setleft(a[k][0]);
else if(hand1.nopower()==2)
hand1.setright(a[k][0]);
else if(hand1.nopower()==0)
{
if(k==0 && a[k][1]<3)
break;
if(a[k][1]==1)
{
b=a[k][0];
k--;
}
else
{
b=a[k][0];
a[k][1]--;
}
hand1.setdouble(a[k][0],b);
y++;
}
y++;
a[k][1]--;
if(a[k][1]<1)
k--;
if(k==0 && a[k][1]==0)
break;
if(hand2.nopower()==1)
{
hand2.setleft(a[k][0]);
}
else if(hand2.nopower()==2)
hand2.setright(a[k][0]);
else if(hand2.nopower()==0)
{
if(k==0 && a[k][1]<2)
break;
if(a[k][1]==1)
{
b=a[k][0];
k--;
}
else
{
b=a[k][0];
a[k][1]--;
}
hand2.setdouble(a[k][0],b);
y++;
}
}
else
{
if(hand2.nopower()==1)
{
hand2.setleft(a[k][0]);
}
else if(hand2.nopower()==2)
hand2.setright(a[k][0]);
else if(hand2.nopower()==0)
{
if(k==0 && a[k][1]<3)
break;
if(a[k][1]==1)
{
b=a[k][0];
k--;
}
else
{
b=a[k][0];
a[k][1]--;
}
hand2.setdouble(a[k][0],b);
y++;
}
y++;
a[k][1]--;
if(a[k][1]<1)
k--;
if(k==0 && a[k][1]==0)
break;
else if(k==0 && a[k][1]==0)
if(hand1.nopower()==1)
hand1.setleft(a[k][0]);
else if(hand1.nopower()==2)
hand1.setright(a[k][0]);
}
}
else
{
if(hand2.nopower()==1)
{
hand2.setleft(a[k][0]);
}
else if(hand2.nopower()==2)
hand2.setright(a[k][0]);
else if(hand2.nopower()==0)
{
if(k==0 && a[k][1]<2)
break;
if(a[k][1]==1)
{
b=a[k][0];
k++;
}
else
{
b=a[k][0];
a[k][1]--;
}
hand2.setdouble(a[k][0],b);
y++;
}
hand1.setcurrent(hand2.shortpower());
}
a[k][1]--;
time2+=hand1.shortpower()<hand2.shortpower()?hand1.shortpower():hand2.shortpower();
}
}
22 楼
liuwenhan [专家分:20] 发布于 2008-11-26 18:58:00
The third is finished, yeath
我来回复