春游

时间限制: 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;
}
/**/