春游
春游
时间限制: 1 Sec 内存限制: 128 MB
题目描述
小X就读的CZ 中学今年又取得了小高考的空前佳绩,全校师生都很开心,于是大家希望找个地方去春游,在广泛征集了全校师生的意见后,最终决定前往嬉戏谷游玩一天。出行方案为租用大巴,可供租用的大巴有两种,一种是49 座的,一种是33 座的,49 座的大巴每辆租金为3300 元,33 座的大巴每辆租金为1900 元,全校师生共有n 人,现在学校希望找到一种最省钱的租车方案,这个任务学校交给了擅长编程的小X同学,而小X同学最近太忙了,他觉得这么简单的任务交给小学生就行了,如果你想参加江苏省“信息与未来”夏令营那就先把这个问题解决了吧!
输入
输入数据仅有一行包含一个正整数n,表示CZ 中学出游的总人数
输出
输出数据仅有一行包含一个正整数,表示租车所需的最少费用。
样例输入
复制样例数据
67
样例输出
5200
提示
最省钱的租车方案是两种大巴各租一辆,总费用为5200 元,其他的方案均不可能低于该费用。
数据范围
20%的数据,n<=50
40%的数据,n<=100
80%的数据,n<=10^6
100%的数据,n<=10^12,注意这部份数据要用long long
49座的每个人67.347
33座的每个人57.576
那么肯定选择33座的车最优
然后算出可以选多少辆33座的,设剩下的位lea
如果lea<=16&&lea!=0,那么如果减去一辆33座的,选一辆49座的,那么费用为(t-1)*1900+3300,而如果再选一辆33座的,那么费用为(t+1)*1900
如果lea>16,选择1辆49座,和选一辆33座的哪一个便宜就毋庸置疑
注意两点点,lea==0的情况和如果人数少于33个人的情况
/**/
#include <cstdio>
#include <cstring>
#include <cmath>
#include <cctype>
#include <iostream>
#include <algorithm>
#include <map>
#include <set>
#include <vector>
#include <string>
#include <stack>
#include <queue>
typedef long long LL;
using namespace std;
//49座的每个人67.347
//33座的每个人57.576
int main()
{
//freopen("in.txt", "r", stdin);
//freopen("out.txt", "w", stdout);
LL n;
scanf("%lld", &n);
LL t = n / 33, leave = n % 33, ans;
if(!leave) ans = t * 1900;
else if(leave <= 16) ans = (t - 1) * 1900 + 3300;
else ans = (t + 1) * 1900;
if(n < 33) ans = 1900;
printf("%lld\n", ans);
return 0;
}
/**/