mioj + 1S

著作権:スパークhttps://blog.csdn.net/qq_35619728/article/details/89257583

ミレーOJ

今日は、この質問は比較的簡単です書いています。二日徐々に出て心理的な自閉症の前に。昨日はへのリンク添付するかなり詳細に言えば、高速なソートについての記事を見た...トイレのビューのクイックソートアルゴリズムのポイントを、それは非常に賢い確かに、ビット二分法のように私には思える、と最悪の時間複雑でした

+1


説明

謎の古代の土地では、長老があり、彼は特殊な能力を持っている、それが第二自分たちの生活を継続することができ、同時に、人々は周り-1,2に適切です

たび分の同じ数(24時間、00 59:00:00-23:59)との時間電子テーブルの数最後の1分1秒消えていること、

すなわち、例えば、と言うことです、06:06:58次の二つ目は午前六時07分00秒になります

今、高齢者との共存の期間の後、あなたのために、あなたはどのくらいの時間を費やします


エントリー

現実世界の経過時間が、フォーマットが{D}日分の{}は{} {H}秒、分、秒2を補完します


輸出

あなたのために、時間、同じ入力フォーマット


一般的な考え方は、高齢者がここに記録秒で、よりはるかに長い他のものよりになる計算することです。そして、ユニットとして、第2は、多くの若者が、より多くの秒を持つことができますどのようにカウントし、バック終日番号、時間、分、秒を使用します。

ああ、私はそれについて考えます。体にも場所を持っています。飛び出すdが遭遇した整形時に彼の直接のフォーマットに従って取得する必要があります。問題は、ピットがあります。

#include"stdio.h"

/*
输入样例
2d06 05 24
 复制样例
输出样例
2d06 04 30
*/
/*
一天会损失24*1    秒
完整的一小时损失一秒
*/ 
typedef struct
{
	int day;
	int hour;
	int min;
	int sec;
}time;

time young, old ;
int main(void)
{
	static int a, b[100];//数组用来获取元素
	static int num = 0;//用来算长者与我差的时间
	static int i, j, k;
	//time young,old=0;
	static char p = 0;

	while (~scanf_s("%d", &a))
	{

		  b[i++] = a;
		  p = getchar();
		  if (p == 'd')
			  break;
	}
	while (~scanf_s("%d", &a))
	{
		p = getchar();
		if (p == 'p')
			break;
		b[i++] = a;
	}
	old.day=b[0],old.hour = b[1], old.min = b[2],old.sec=b[3];//取出长者的时间
	num += old.day * 24;//加上天数
	for (j = 1; j <= 24; j++)
	{
		if (old.hour < j)
		{
			if (old.min > j)
				num += j ;
			else if(old.sec==59)
				num += j ;
		   else
				num += j-1;

			break;
		}
	}
	//old比长者多活num秒
	long long int sum_y = 0;
	sum_y = old.day * 24 * 3600 + old.hour * 3600 + old.min * 60 + old.sec - num;
	young.day = sum_y / (24 * 3600);
	young.hour = (sum_y- young.day*24*3600) / 3600;
	young.min = (sum_y-young.day*24*3600 - young.hour*3600)/60;
	young.sec = (sum_y- young.day * 24 * 3600 - young.hour * 3600 -young.min*60);

	printf("%d    %d   %d   %d \n",b[0],b[1],b[2],num);
	printf("%d  %d   %d   %d\n",young.day,young.hour,young.min,young.sec);

	printf("%dd", young.day);
	if (young.hour < 10)
		printf("0");
	    printf("%d", young.hour);
		printf(" ");
		if (young.min < 10)
	    printf("0");
		printf("%d", young.min);
		printf(" ");
		printf("%d", young.sec);


	scanf_s("%d",&a);

}

C言語その後、かろうじて運用効率

ここに画像を挿入説明

そして、決定的な肌。C ++は、直接提出変更されることはありません
ここに画像を挿入説明

![ここの挿入の説明](https://img-blog.csdnimg.cn/2019041221003192.png

ところで、昨日は今日の2冊を買いました。戻って夜に見て

おすすめ

転載: blog.csdn.net/qq_35619728/article/details/89257583