Cheap Travel(暴力求解法)

原创 2015年11月21日 09:47:31
A. Cheap Travel
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output

Ann has recently started commuting by subway. We know that a one ride subway ticket costs a rubles. Besides, Ann found out that she can buy a special ticket for m rides (she can buy it several times). It costs b rubles. Ann did the math; she will need to use subway ntimes. Help Ann, tell her what is the minimum sum of money she will have to spend to make n rides?

Input

The single line contains four space-separated integers nmab (1 ≤ n, m, a, b ≤ 1000) — the number of rides Ann has planned, the number of rides covered by the m ride ticket, the price of a one ride ticket and the price of an m ride ticket.

Output

Print a single integer — the minimum sum in rubles that Ann will need to spend.

Sample test(s)
input
6 2 1 2
output
6
input
5 2 2 3
output
8
Note

In the first sample one of the optimal solutions is: each time buy a one ride ticket. There are other optimal solutions. For example, buy three m ride tickets.

题目大意:要做n趟旅行,有一种票一张可做m趟旅行,有一种票只能做一次旅行,价格分别为a,b

解题思路:由于数据量小,可直接暴力求解

#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;

#define MAX_N 1000005//可由数据推得最大票价不会超过这个数

int n,m,a,b,ans;

int main()
{
	while(cin>>n>>m>>a>>b)
	{
		ans=MAX_N;
		for(int i=0;i<=n;i++)
		{
			int j=(n-i)/m + bool((n-i)%m);
			
			ans = min(ans,i*a+j*b);
		}
		
		cout<<ans<<endl;
	}
	return 0;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

CodeForces 466A Cheap Travel

Time Limit:1000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u Descriptio...

算法竞赛入门经典:第七章 暴力求解法 7.2最大乘积

/* 最大乘积: 输入n个元素组成的序列S,你需要找出一个乘积最大的连续子序列。如果这个最大的成绩不是整数,应输出-1(表示无解)。1<=n<=18,-10<=Si<=10。 输入: 3 2 4 -3...

算法竞赛入门经典:第七章 暴力求解法 7.20八数码问题之stl

/* 八数码问题之stl: 1set vis,这样只需要调用if(vis.count(s))来判断s是否在集合vis中,并用vis.insert(s)加入集合,用vis.remove(s)从集合中...

算法竞赛入门经典:第七章 暴力求解法 7.5枚举排列

/* 枚举排列: 输入整数n,按字典顺序从小到大的顺序输出前n个数的所有排列。两个序列的字典序大小关系等价于从头开始第一个不相同位置处的大小关系。例如,(1,3,2) <(2,1,3) ,字典序最小的...

【NOIP模拟题】【暴力求解法】2016.11.17 第一题 素数密度 题解

素数密度 我们发现l,r的距离很小,所以直接暴力。 P.S. 不能把i#include #include #include #include #include #include #include ...

暴力求解法中的枚举排列,生成全排列

**对于一个长度为n数组长度的数组={0,1,2,3,..., n-1}。要想枚举它的所有的长度为n的全排列出来。** 有两种选择:一个是直接枚举, 另外一个是使用递归构造。

暴力求解法-双基回文数

import java.util.ArrayList; import java.util.Scanner; public class B23 { public static String c...

暴力求解法 之 简单枚举

1、除法     输入正整数n,按从小到大的顺序输出所有形如abcde / fghij = n的表达式,其中a~j恰好为0~9的一个排列,2     样例输入:62     样例输出:  795...

算法竞赛入门经典第七章暴力求解法——子集生成

上一节我整理了一下全排列的生成算法,有两个方法,我建议使用c++中algorithm的next_permutation函数(下一个排列),那么这一节我依然按照紫书的框架顺序整理子集生成的三个算法——1...

算法竞赛入门经典:第七章 暴力求解法 7.1除法

/* 除法: 输入正整数,按从小到大的顺序输出所有形如abcde/fghij=n的表达式,其中a~j恰好为数字0~9的一个排列,2<=n<=79. 输入: 62 输出: 79546/01283=62 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)