sicily 1193

题目在这里1193

n两个人交换箱子互换方向,相当于没有交换。 n当经过2F时间后,所有人的状态没有改变,0层的其中N个箱子搬到了F层,因此先把B对N取模。求出每个人从当前状态把0层的一个箱子搬到F层需要的时间,排序,B对N取模的余数就由最快的部分人来搬。
代码如下,仅供参考
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;

int main()
{
	int T, N, F, B;
	int m, n;
	int steps[1001];
	cin >> T;
	while (T--)
	{
		memset(steps, 0, sizeof(steps));
		cin >> N >> F >> B;
		for (int i = 0; i < N; i++)
		{
			cin >> m >> n;
			if (n == 0)
				steps[i] = F + m;
			else
				steps[i] = 3 * F - m;
		}
		sort(steps, steps + N);
		int ans, left;
		left = B % N;
		if (left == 0)
			ans = (B / N - 1) * 2 * F + steps[N - 1];
		else
			ans = B / N * 2 * F + steps[left - 1];
		cout << ans << endl;
	}
	//system("pause");
	return 0;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值