社区讨论

WA#4求调

P1167刷题参与者 1已保存回复 0

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
0 条
当前快照
1 份
快照标识符
@mi9v89dn
此快照首次捕获于
2025/11/22 13:45
4 个月前
此快照最后确认于
2025/11/22 14:30
4 个月前
查看原帖
CPP
#include <bits/stdc++.h>

using namespace std;

const int N = 5005;

int n, p[N], a, b, c, d, e, a2, b2, c2, d2, e2, cnt;

int main()
{
	cin >> n;
	for (int i = 1; i <= n; i ++ ) scanf("%d", &p[i]);
	sort(p + 1, p + n + 1);
	scanf("%d-%d-%d-%d:%d%d-%d-%d-%d:%d", &a, &b, &c, &d, &e, &a2, &b2, &c2, &d2, &e2);
	int s = 0;
	if (e2 > e) s += e2 - e;
	else if (e2 < e) s += e2 + 60 - e, d2 -- ;
	if (d2 > d) s += (d2 - d) * 60;
	else if (d2 < d) s += (d2 + 24 - d) * 60, c2 -- ;
	int t1 = 0, t2 = 0;
	for (int i = a; i < a2; i ++ )
	{
		if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) t1 ++ ;
		else t2 ++ ;
	}
	s += t1 * 366 * 24 * 60 + t2 * 365 * 24 * 60;
	if (b2 > b)
	{
		for (int i = b; i < b2; i ++ )
		{
			if (i == 2)
			{
				if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) s += 29 * 24 * 60;
				else s += 28 * 24 * 60;
			}
			if (i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12) s += 31 * 24 * 60;
			else s += 30 * 24 * 60;
		}
	}
	else
	{
		for (int i = b2; i < b; i ++ )
		{
			if (i == 2)
			{
				if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) s -= 29 * 24 * 60;
				else s -= 28 * 24 * 60;
			}
			if (i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12) s -= 31 * 24 * 60;
			else s -= 30 * 24 * 60;
		}		
	}
	s += (c2 - c) * 60 * 24;
	for (int i = 1; i <= n; i ++ )
	{
		if (s >= p[i]) s -= p[i], cnt ++ ;
		else break;
	}
	cout << cnt << endl;
	return 0;
}



回复

0 条回复,欢迎继续交流。

正在加载回复...