| ||||||||||
| 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 | |||||||||
搞定。。一直WA原来是字母打错。。自己的解法。带注释#include<iostream>
#include<iomanip>
#include<math.h>
using namespace std;
int main()
{
int p,e,i,d,a,b,c;
for(int k=1;k;k++)
{
cin>>p>>e>>i>>d;
if(p==-1&&e==-1&&i==-1&&d==-1) //判断结束
break;
//标识peak的起始时间
a=p;
b=e;
c=i;
//抽象化所有特殊情况,即给的d那一天刚好是3个circle的peak同一天时,进行处理
if(abs(p-d)%23==0&&abs(e-d)%28==0&&abs(i-d)%33==0)
{
p++;
e++;
i++;
d=1;
}
else //一般情况下
{
p=e=i=d; //各个circle从d那一天开始进行处理
d=0; //d=0,省去对21252的求余处理,重新计数
}
while(abs(p-a)%23!=0||abs(e-b)%28!=0||abs(i-c)%33!=0) //判断3个circle的peak是否在同一天,否,则所有天数+1
{
p++;
e++;
i++;
d++;
}
//不输出p,e,i,不需要对他们进行处理,d前面置0,即为所求天数
cout<<"Case "<<k<<": the next triple peak occurs in "<<d<<" days."<<endl;
}
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator