A.组队比赛
枚举法
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<math.h>
#include <climits>
int st[2002], gt[2002];
int main()
{
int a[22], k = 0;
for (int i = 0; i < 4; i++)
{
scanf("%d", &a[i]);
}
for (int i = 0; i < 4; i++)
{
for (int j = i + 1; j < 4; j++)
{
st[k] = a[i] + a[j];//4人选2人组合枚举
for (int w = 0; w < 4; w++)
{
if (w != i && w != j)//另外两人枚举
{
gt[k] += a[w];
}
}
k++;
//printf("%d\n", st[k - 1]);
}
}
int t = st[0];
int MIN = 0x3f3f3f3f;
for (int i = 1; i < k; i++)//比较
{
if (fabs(st[i] - gt[i]) < MIN)
{
MIN = fabs(st[i] - gt[i]);
}
}
printf("%d\n", MIN);
}
B. 每日一报
结构体,排序规则函数
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<algorithm>
using namespace std;
struct node//题目描述的数据结构
{
int day;
int id;
double temp;
}p[502];
struct cmp//排序规则函数
{
bool operator()(const node& t1, const node& t2)
{
if (t1.day != t2.day)
{
return t1.day > t2.day;
}
else if (t1.temp != t2.temp)
{
return t1.temp > t2.temp;
}
return t1.id < t2.id;
}
};
int main()
{
int n, a, b, k = 0;
double c