sh073分硬币
Posted iuppiter
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sh073分硬币相关的知识,希望对你有一定的参考价值。
- 总时间限制:10000ms
- 单个测试点时间限制:1000ms
- 内存限制:65536kB
描述:
徐老师口袋里面有7枚硬币,他要将这些硬币分给秦立伦和夏天呈,使得两人得到的钱的差值最小(不然他俩会因为分得不均而打架)。每枚硬币的面值范围是1分到100分,不允许将一枚硬币分开。
输入:
输入仅一行,包含以空格分隔的 7 个正整数,表示每枚硬币的面值
输出:
输出一个正整数或 0,表示两人所分到钱的最小差值
样例输入:
2 5 7 9 11 8 23
样例输出:
1
AC代码:(暴力)
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <algorithm>
#define ABS(a) ((a) >= 0 ? (a) : (-(a)))
#define MIN(a, b) ((a) < (b) ? (a) : (b))
int main() {
int f = 0;
int p1 = 0;
int p2 = 0;
int answer = 2147483647;
int m[7];
for(int i = 0; i < 7; ++i) {
std::cin >> m[i];
}
for(int i = 0; i < 256; ++i) {
for(int j = 0; j < 7; ++j) {
if(((1 << (j - 1)) & i))
p1 = p1 + m[j];
else
p2 = p2 + m[j];
}
answer = MIN(answer, ABS(p1 - p2));
p1 = 0;
p2 = 0;
}
printf("%d", answer);
return 0;
}
以上是关于sh073分硬币的主要内容,如果未能解决你的问题,请参考以下文章