poj 1006

#include <iostream>
#include <vector>
int main()
{
	std::vector< std::vector<int> > vi;
	while(1)
	{
		std::vector<int> vl(4);
		std::cin>>vl[0]>>vl[1]>>vl[2]>>vl[3];
		if(vl[0]==-1 && vl[1]==-1 && vl[2]==-1 && vl[3]==-1)
			break;
		vi.push_back(vl);
	}
	for(unsigned int i=0; i<vi.size(); i++)
	{
		int day = 1;
		if(vi[i][3]>day)
			day = vi[i][3];
		int dmax = 21252+vi[i][3];
		for(; day<=dmax; day++)
		{
			if((day%23-vi[i][0]%23)==0 && (day%28-vi[i][1]%28)==0 && (day%33-vi[i][2]%33)==0){
				std::cout<<"Case "<<i+1<<": the next triple peak occurs in "<<day-vi[i][3]<<" days.\n";
				break;
			}
		}
	}
	return 0;
}


这题提交了4次,前3次都是Wrong answer,后来继续看题,发现每次前三个值不一定比第四个小,且不一定是每年的第一个高峰值,修改if判断逻辑,通过

性能:

1    452515        moonancient    4K    0MS    Pascal    350B     2005-05-06 02:49:41
2    495174(5)    oliverzhou    4K    0MS    Pascal    551B     2005-06-17 12:13:07
3    2383621        040824108    8K    0MS    C++    311B     2007-07-24 17:39:25

16934    11110763    dragoo1    1006    272K    360MS    C++    652B    2012-12-15 14:50:26
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值