http://codeforces.com/contest/34
2015-10-28 13:13
525 查看
B. Sale
time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output
Once Bob got to a sale of old TV sets. There were n TV sets at that sale. TV set with index i costs ai bellars.
Some TV sets have a negative price — their owners are ready to pay Bob if he buys their useless apparatus. Bob can «buy» any TV sets he wants. Though he's very strong, Bob can carry at most m TV
sets, and he has no desire to go to the sale for the second time. Please, help Bob find out the maximum sum of money that he can earn.
Input
The first line contains two space-separated integers n and m (1 ≤ m ≤ n ≤ 100)
— amount of TV sets at the sale, and amount of TV sets that Bob can carry. The following line contains n space-separated integers ai( - 1000 ≤ ai ≤ 1000)
— prices of the TV sets.
Output
Output the only number — the maximum sum of money that Bob can earn, given that he can carry at most mTV sets.
Sample test(s)
input
output
input
output
这里我们用了简单的冒泡排序,当我们计算我们能赚多少钱是一定要注意把大于零的数去掉,因为加上大于零的数我们是会赔钱的,所以一定要考虑全面
#include <stdio.h>
int main()
{
int m, arr[110],k, i, s=0, j, n;
scanf("%d", &n);
scanf("%d", &m);
for(i=1; i<=n; i++)
scanf("%d", &arr[i]);
for(j =
2; j <= n; j++)
for(i =
2; i <= n; i++)
{
if(arr[i]<arr[i-1])
{
k = arr[i-1];
arr[i-1] = arr[i];
arr[i] = k;
}
}
for(i=1;i<=n;i++)
printf("%d", arr[i]);
for(i=1;i<=m;i++)
{
if(arr[i] <
0)
s += arr[i];
}
printf("%d\n", -s);
return
0;
}
time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output
Once Bob got to a sale of old TV sets. There were n TV sets at that sale. TV set with index i costs ai bellars.
Some TV sets have a negative price — their owners are ready to pay Bob if he buys their useless apparatus. Bob can «buy» any TV sets he wants. Though he's very strong, Bob can carry at most m TV
sets, and he has no desire to go to the sale for the second time. Please, help Bob find out the maximum sum of money that he can earn.
Input
The first line contains two space-separated integers n and m (1 ≤ m ≤ n ≤ 100)
— amount of TV sets at the sale, and amount of TV sets that Bob can carry. The following line contains n space-separated integers ai( - 1000 ≤ ai ≤ 1000)
— prices of the TV sets.
Output
Output the only number — the maximum sum of money that Bob can earn, given that he can carry at most mTV sets.
Sample test(s)
input
5 3 -6 0 35 -2 4
output
8
input
4 2 7 0 0 -7
output
7
这里我们用了简单的冒泡排序,当我们计算我们能赚多少钱是一定要注意把大于零的数去掉,因为加上大于零的数我们是会赔钱的,所以一定要考虑全面
#include <stdio.h>
int main()
{
int m, arr[110],k, i, s=0, j, n;
scanf("%d", &n);
scanf("%d", &m);
for(i=1; i<=n; i++)
scanf("%d", &arr[i]);
for(j =
2; j <= n; j++)
for(i =
2; i <= n; i++)
{
if(arr[i]<arr[i-1])
{
k = arr[i-1];
arr[i-1] = arr[i];
arr[i] = k;
}
}
for(i=1;i<=n;i++)
printf("%d", arr[i]);
for(i=1;i<=m;i++)
{
if(arr[i] <
0)
s += arr[i];
}
printf("%d\n", -s);
return
0;
}
相关文章推荐
- HDU 1000
- HDU 1001
- POJ 1979
- Roman numerals 解题报告
- Codeforces 193 Div 2
- POJ 2318 TOYS(叉积+二分or暴力)
- POJ 2398 Toy Storage(叉积+二分)
- POJ 1631 Bridging signals(LIS+二分)
- POJ 1573 & POJ 2632(两道有趣的Robot)
- HDU 1394 Minimum Inversion Number(逆序数)
- HDU 2795 Billboard(线段树)
- POJ 2418 Hardwood Species(字典树)
- POJ 2828 Buy Tickets(神题!线段树or树状数组)
- POJ 3083 Children of the Candy Corn(顺时针DFS+逆时针DFS+BFS)
- POJ 2886 Who Gets the Most Candies(线段树+约瑟夫环)
- CTU Open 2008(未完工)
- hdu 1520-树形dp
- Codeforces Round #184 (Div. 2) D、E
- Crossing Rivers
- http://codeforces.com/contest/34