60求助
  • 板块灌水区
  • 楼主furina_1013
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/5/18 09:52
  • 上次更新2024/5/18 11:54:11
查看原帖
60求助
794188
furina_1013楼主2024/5/18 09:52

T264955

Tonyaの双枪

题目背景

Tonya 是一名忠实的《红色警戒 2》玩家。

一天,Tonya 正在全神贯注地操纵她的十八路大军与敌人血战,却不知怎么被吸入了游戏之中。

“Show me the way!”

迎面冲来的敌人向她喊道。

“It's fantastic!”

她大笑起来,双枪挥舞。

题目描述

Tonya 的枪很厉害,一发子弹就可以击杀一名敌人;可是它需要冷却时间,只有在枪的冷却时间之外才能击杀敌人。

具体来说,一共有 nn 名敌人,如果在第 xx 秒发射一发子弹击杀了一名敌人,且枪的冷却时间为 cc 秒,则 Tonya 的下一次射击时间就是在第 x+cx+c 秒。很显然,为了击杀尽可能多的敌人,每次可以射击的时间内 Tonya 一定都会射击。

现在的时间为第 00 秒,敌人的援军会在第 tt 秒时到达战场,且 Tonya 的枪内已经装好了子弹,请问 Tonya 能否在敌人的援军到达之前击杀所有的敌人?

如果可以,则输出 Tonya 击杀所有敌军之后的时间;如果不能,则输出 Tonya 最多能击杀多少个敌人。

输入格式

一行三个正整数 n,c,tn,c,t,分别表示敌人的数量,枪的冷却时间和敌人援军到达的时间。

输出格式

一行一个整数。

如果可以在援军到达之前击杀所有敌军,则输出击杀所有敌军之后的时间;如果不行,则输出最多能击杀多少敌人。

样例 #1

样例输入 #1

5 1 10

样例输出 #1

4

样例 #2

样例输入 #2

4 3 9

样例输出 #2

3

提示

样例解释

对于样例 11,Tonya 会在第 0,1,2,3,40,1,2,3,4 秒分别击杀一个敌人,则第 44 秒时 Tonya 会击杀所有敌人,且此时援军并未到达。

对于样例 22,Tonya 会在第 0,3,60,3,6 秒分别击杀一个敌人,但第 99 秒时敌人援军已经到来,故 Tonya 无法击杀第 44 个敌人,最多只能击杀 33 个敌人。

数据范围

子任务序号说明分值
#1\#1n,c≤103,106<t≤107n,c\le10^3,10^6<t\le10^73030
#2\#2n,t≤106n,t\le10^63030
#3\#3无特殊要求4040

对于 100%100\% 的数据,1≤n,t≤1012,1≤c≤1031\le n,t\le 10^{12},1\le c\le 10^3。

#include<bits/stdc++.h>
using namespace std;
long long n,c,t;
int main()
{
	ios::sync_with_stdio(false);            
	cin.tie(0);             
	cout.tie(0);
	cin>>n>>c>>t;
	if((t-1)/c+1>n)cout<<n*c-1;
	else cout<<(t-1)/c+1;
	return 0;
}
2024/5/18 09:52
加载中...