BuringStraw

BuringStraw

义冢oj P5032生理周期 生理周期は、女性の身体の変化を表すものであり、通常は月経周期とも呼ばれます。この周期は、女性の卵巣での卵の成熟と排卵、子宮内膜の成長と剥離によって制御されます。生理周期は個人によって異なる場合がありますが、一般的には約28日間です。 生理周期は、女性の健康と生殖能力に関連しており、妊娠を計画する場合や健康状態を把握するために重要です。生理周期の長さや規則性は、ホルモンのバランスや身体の状態によって影響を受けることがあります。 生理周期のさまざまな段階では、体温、体重、気分、エネルギーレベルなどの変化が起こることがあります。これらの変化を理解し、適切に管理することは、女性の健康とウェルビーイングにとって重要です。 生理周期の正確な追跡と理解は、妊娠や生殖の問題を予防するためにも役立ちます。定期的な健康チェックや医師との相談も重要です。

题目:生理周期#

描述#

人生来就有三个生理周期,分别为体力,感情和智力周期。它们的周期长度为 23 天,28 天和 33 天。每一个周期中有一天是高峰。 在高峰这天,人会在相应的方面表现出色。例如,智力周期的高峰,人会思维敏捷,精力容易高度集中。因为三个周期的周长不同,所以通常三个周期的高峰不会落在同一天。对于每个人,我们想知道何时三个高峰落在同天。对于每个周期,我们会给出从当前年份的第一天开始,到出现高峰的天数 (不定基第次高峰出现的时间)。已知在当年的第 p 天出现体力高峰,第 e 天出现感情高峰,第 i 天出现智力高峰,*你的任务是给定一个天数 d,计算从 d 开始至少多少天后三个高峰落在同一天。

注意:若 d=10,如果下次出现 3 个高峰同天的时间是 12,则输出 2 (注意这里不是 3)。

輸入#

有多组测试数据,每行四个整数

,e,i,d。其中 p,e,i 分别表示体力、情感、智力的高峰出现的时间 (时间从当年的第 1 天开始计算)。 d 是给定的时间,可能小于 p,e 或 i。当 p=e=i=-1 时输入结束。

輸出#

从给定时间起,下一次三个高峰同天的时间 (距离给定时间的天数)。

輸入範例 1#

0 0 0 0
0 0 0 100
5 20 34 325
4 5 6 7
283 102 23 320
203 301 203 40
-1 -1 -1 -1

輸出範例 1#

21252
21152
19575
16994
8910
10789

提示#

0<=p,e,i,d<=365

思路#

これは中国の剰余定理の問題であるべきだが、ちょうどその授業にはいなかったし、自習でも理解できなかったので、暴力を選択した。最後には AC できた。

コードを書いてみる。

Code#

//I closed myself.What a happy zero-boomed contest!!!
#include<bits/stdc++.h>
using namespace std;
const int ji=23*28*33;

int zq[4];

int main(){
	freopen("cycle.in","r",stdin);
	freopen("cycle.out","w",stdout);
	
	int p,e,i,d;
	while(1){
		scanf("%d%d%d%d",zq+1,zq+2,zq+3,&d);
		if(zq[1]==-1&&zq[2]==-1&&zq[3]==-1){
			return 0;
		}
		int s=max(zq[1],max(zq[2],zq[3]));
		zq[1]%=23,zq[2]%=28,zq[3]%=33;
		if(s==0)s+=ji;
		if(s>d){
			while(s>=d){
				if(s%23==zq[1]&&s%28==zq[2]&&s%33==zq[3]){
					printf("%d\n",s-d);
					goto a;
				}
				s-=1;
			}
		}
		while(s%23!=zq[1]||s%28!=zq[2]||s%33!=zq[3]||s<d){
			s+=1;
		}
		printf("%d\n",s-d);
		a:;
	}
	
	fclose(stdout);
	fclose(stdin);
	return 0;
}
読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。