10分 请求指点
查看原帖
10分 请求指点
499627
arc_suvr楼主2021/9/3 21:52
#include <bits/stdc++.h>
using namespace std;
int x, T[10005], D[10005], n, cnt1 = 1, cnt2 = 1, pos1 = 0, pos2 = 0, cnt = 0, times = 0;
char c;
double sum = 0.0, v = 1.0;
int main()
{
	cin >> n;
	for (int i = 1; i <= n; i++)
	{
		cin >> c >> x;
		if (c == 'T')
			T[++pos1] = x;
		else if (c == 'D')
			D[++pos2] = x;	
	}
	sort(T + 1, T + pos1);
	sort(D + 1, D + pos2);
	while (1)
	{
		v = 1.0 / (cnt + 1);
		if (1000.0 - sum <= v)
		{
			if (1000.0 - sum >= sum + v - 1000.0)
				times++;
			break;
		}
		times++;
		sum += v;
		if (T[cnt1] <= times && T[cnt1] != 0)
			cnt1++, cnt++;
		if (D[cnt2] * 1.0 <= sum && D[cnt2] != 0)
			cnt2++, cnt++;
	}
	cout << times << endl;
	return 0;
}
2021/9/3 21:52
加载中...