【题目】
【题意】n个数相互比较,1和2,1和3……1和n,2和3,2和4……,共比较xxx次,问第xxx/2次比较是“?”和xx的比较?
输出“?”
【代码】
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
ll n;
scanf("%I64d",&n);
ll tot = n * (n - 1) / 2;
ll l = 1,r = n;
while(l <= r)
{
ll mid = (l + r) >> 1;
ll tmp = ((n-1) + (n-mid)) * mid;
if(tmp >= tot)
r = mid - 1;
else
l = mid + 1;
}
ll tmp = ((n - 1) + (n - r)) * r;
if(tmp == tot)
printf("%I64d\n",r);
else
printf("%I64d\n",l);
}