尸山代码,求条(宣两关
  • 板块P1167 刷题
  • 楼主ceh666
  • 当前回复3
  • 已保存回复3
  • 发布时间2025/6/29 21:03
  • 上次更新2025/6/30 18:12:16
查看原帖
尸山代码,求条(宣两关
1418335
ceh666楼主2025/6/29 21:03

rt

#include<bits/stdc++.h>
using namespace std;
int a[5005], ans = 0, sum;
int y, m1, d1, h1, M1;
int y2, m2, d2, h2, M2;
//bool isrun(int n) {
//	int s;
//	for (int i = 0; i < n; i ++) {
//		if( (n % 4 == 0 && n % 100 != 0) || (n % 400 == 0)) {
//			s += 29;
//		} else {
//			s += 28;
//		}
//	}
//	return s;
//}
void times() {
	for (int j = 1; j <= y2; j ++) {
		for (int i = 1; i <= 12; i ++) {
			switch (i) {
				case 1: {
					sum += 31 * 24 * 60;
					break;
				}
				case 2: {
					if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) {
						sum += 29 * 24 * 60;
					} else {
						sum += 28 * 24 * 60;
					}
//				switch(y2) {
//					case y2 % 4 == 0 && y2 % 100 != 0 || y2 % 400 == 0:
//						sum += 29 * 24 * 60;
//						break;
//					default {
//						sum += 28 * 24 * 60;
//						break;
//					}
//				}
				}
				case 3: {
					sum += 31 * 24 * 60;
					break;
				}
				case 4: {
					sum += 30 * 24 * 60;
					break;
				}
				case 5: {
					sum += 31 * 24 * 60;
					break;
				}
				case 6: {
					sum += 30 * 24 * 60;
					break;
				}
				case 7: {
					sum += 31 * 24 * 60;
					break;
				}
				case 8: {
					sum += 31 * 24 * 60;
					break;
				}
				case 9: {
					sum += 30 * 24 * 60;
					break;
				}
				case 10: {
					sum += 31 * 24 * 60;
					break;
				}
				case 11: {
					sum += 30 * 24 * 60;
					break;
				}
				case 12: {
					sum += 31 * 24 * 60;
					break;
				}
			}
		}

	}
	sum += (d2 - 1) * 24 * 60;
	sum += (h2 != 0 ? (h2 - 1) * 60 : 0);
	sum += M2;
	for (int j = 1; j <= y; j ++) {
		for (int i = 1; i <= 12; i ++) {
			switch (i) {
				case 1: {
					sum -= 31 * 24 * 60;
					break;
				}
				case 2: {
					if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) {
						sum -= 29 * 24 * 60;
					} else {
						sum -= 28 * 24 * 60;
					}
//				switch(y) {
//					case y % 4 == 0 && y % 100 != 0 || y % 400 == 0:
//						sum -= 29 * 24 * 60;
//						break;
//					default {
//						sum -= 28 * 24 * 60;
//						break;
//					}
//				}
				}
				case 3: {
					sum -= 31 * 24 * 60;
					break;
				}
				case 4: {
					sum -= 30 * 24 * 60;
					break;
				}
				case 5: {
					sum -= 31 * 24 * 60;
					break;
				}
				case 6: {
					sum -= 30 * 24 * 60;
					break;
				}
				case 7: {
					sum -= 31 * 24 * 60;
					break;
				}
				case 8: {
					sum -= 31 * 24 * 60;
					break;
				}
				case 9: {
					sum -= 30 * 24 * 60;
					break;
				}
				case 10: {
					sum -= 31 * 24 * 60;
					break;
				}
				case 11: {
					sum -= 30 * 24 * 60;
					break;
				}
				case 12: {
					sum -= 31 * 24 * 60;
					break;
				}
			}
		}
	}
	sum -= (d1 - 1) * 24 * 60;
	sum -= (h1 != 0 ? (h1 - 1) * 60 : 0);
	sum -= M1;

}
int main() {
	int n;
	cin >> n;
	for (int i = 1; i <= n; i ++) {
		cin >> a[i];
	}
	scanf ("%d-%d-%d-%d:%d", &y, &m1, &d1, &h1, &M1);
	scanf ("%d-%d-%d-%d:%d", &y2, &m2, &d2, &h2, &M2);
	sort (a + 1, a + n + 1);
	times ();
	for (int i = 1; i <= n; i ++) {
		if (sum >= 0) {
			sum -= a[i];
			ans ++;
		}
	}
	if (sum < 0) {
		cout << ans - 1;
	} else {
		cout << ans;
	}
	return 0;
}
2025/6/29 21:03
加载中...