题目大概意思就是:给出一组实验数据(变换前的数据每个之间最大相差为2),要求对这组实验数据进行变换,变换要符合三个要求:
1.变换后的新数据的平均值和原数据一样。
2.变换后得到的新数据的上下边界不能超过原来的实验数据 。
3.两组实验数据相同的值要最少。
思路:
变换后得到的新数据的平均值一样和最大相差为二可以知道只存在两种变换:
设a,b,c存在a=b+1,b=c+1关系
一、a+c变换为2b
二、2b变换为a+c
然后就要统计两种变换可以减少的相同数为多少,取减少相同数最多的变换来进行。
最后特别要注意的就是进来的这两组数据一定要是有三个不同的数字,如果只有两个不同的数字或者一个是不可能通过变换来降低相同值的。
题目来源;Codeforces Round #468 (Div. 2, based on Technocup 2018 Final Round). C题
http://codeforces.com/problemset/problem/931/C
import java.util.Arrays;
import java.util.Scanner;
public class Main{
static Scanner input = new Scanner(System.in);