A Friends Meeting

  题意:有两个人在数轴上的不同位置,现在他们需要到一个位置碰面。每次每人只能向左或向右走1个单位,轮流进行。每个人第一次走时疲劳度+1,第二次走时疲劳度+2,以此类推。问两个人碰面时总的疲劳度最小为多少?

  思路:碰面位置为(a+b)/2.

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cmath>
 4 using namespace std;
 5 int main()
 6 {
 7     int a,b;
 8     scanf("%d%d", &a, &b);
 9     long long ans = 0;
10     int mid = (a + b) / 2;
11     ans += (1 + abs(mid - a))*abs(mid - a) / 2 + (1 + abs(mid - b))*abs(mid - b) / 2;
12     printf("%I64d\n", ans);
13     return 0;
14 }
View Code

相关文章: