【CF1023B】Pair of Toys(解方程)
题意:给定n个玩具要你选出两个玩具求出k的价值,第i个玩具的价值为i。若是没有选择方案,输出0
补充:玩具A与玩具B 和 玩具B和玩具A 是同一种选择
n,k<=1e14
思路:列出式子,解不等式组
1 #include<cstdio> 2 #include<cstring> 3 #include<string> 4 #include<cmath> 5 #include<iostream> 6 #include<algorithm> 7 #include<map> 8 #include<set> 9 #include<queue> 10 #include<vector> 11 using namespace std; 12 typedef long long ll; 13 typedef unsigned int uint; 14 typedef unsigned long long ull; 15 typedef pair<int,int> PII; 16 typedef vector<int> VI; 17 #define fi first 18 #define se second 19 #define MP make_pair 20 #define N 210000 21 #define MOD 1000000007 22 #define eps 1e-8 23 #define pi acos(-1) 24 #define oo 2000000000 25 26 27 28 int read() 29 { 30 int v=0,f=1; 31 char c=getchar(); 32 while(c<48||57<c) {if(c=='-') f=-1; c=getchar();} 33 while(48<=c&&c<=57) v=(v<<3)+v+v+c-48,c=getchar(); 34 return v*f; 35 } 36 37 void swap(int &x,int &y) 38 { 39 int t=x;x=y;y=t; 40 } 41 42 43 ll max(ll x,ll y) 44 { 45 if(x>y) return x; 46 return y; 47 } 48 49 ll min(ll x,ll y) 50 { 51 if(x<y) return x; 52 return y; 53 } 54 55 int main() 56 { 57 // freopen("1.in","r",stdin); 58 // freopen("1.out","w",stdout); 59 ll n,k; 60 scanf("%lld%lld",&n,&k); 61 ll s=max(1,max(k-n,k/2+1)); 62 ll t=min(n,k-1); 63 if(s>t) printf("0"); 64 else 65 { 66 ll ans=t-s+1; 67 printf("%lld",ans); 68 } 69 70 return 0; 71 }
null