主要记录下被坑的B。果然大晚上脑子就是不知道在干嘛,明明都测到 “1 1” 这个样例错了都没发现直接给放过去了,白白让人hack爽了...

题意就是给你一个数m,让你从1~n个数中选一个作a,使1~n中的任意选一个数c,满足|c-m| > |c-a|的可能性最大,也就是离m近的数比离a近的数多,多种可能输出小的;

画一下草图就能知道算是个几何概率吧,如果m-1 > n-m,即m离1近,那么在m+1~n中选一个位置a都会有更大的可能使离a近的数比离m近的数多;而其中概率最大的就是m+1 -- 只要c>=m+1都会满足|c-a| < |c-m|;

同理m-1 > n-m的情况,选a为m-1能使满足|c-a| < |c-m|的c值最多;

注意1 1应输出1

 1 #include<cstdio>
 2 #include<cstdlib>
 3 #include<cstring>
 4 int main()
 5 {
 6     int n, m;
 7     scanf("%d%d", &n, &m);
 8     if(n == m && n == 1) printf("1\n");
 9     else
10     {
11         if(n-m > m-1)
12         {
13             printf("%d\n", m+1);
14         }
15         else
16         {
17             printf("%d\n", m-1);
18         }
19     }
20     return 0;
21 }
View Code

相关文章: