题目大意: 有n件物品,第i件物品的价格为i,现从中选两件使得总价为k(位置互换只算一种,每种物品只能选择一次)
简单的数学问题,分情况考虑即可。
cnt=k-n 如果cnt>n,那么显然无法得到一组解(即k过于大)
如果k<=n,那么简单的凑起来就可以了
(1,k-1),(2,k-2)……
还剩一种情况,k>n&&cnt<=n,那么就将大于cnt的拼凑起来即可,与k<=n的情况类似。
注意用 long long
#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<cstdio>
#include<queue>
using namespace std;
typedef long long ll;
int main(){
ll n,k;
cin>>n>>k;
ll cnt=k-n;
if(cnt>=n)cout<<0;
else if(n>=k)cout<<(k-1)/2;
else cout<<(n-cnt+1)/2;
return 0;
}