fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define ll long long
  4. #define ull unsigned long long
  5. const ll N=1000005;
  6. const ll inf=1e18;
  7.  
  8. ull seg_len(ll l,ll r)
  9. {
  10. if(l>r) return 0ULL;
  11. return (ull)(r-l)+1ULL;
  12. }
  13.  
  14. void solve()
  15. {
  16. //freopen(".inp","r",stdin);
  17. //freopen(".out","w",stdout);
  18. ll n,m;
  19. cin>>n>>m;
  20. if(m==0)
  21. {
  22. cout<<1<<"\n";
  23. return;
  24. }
  25. ll l1=n-(m/2);
  26. ll r1;
  27. if(m>=2) r1=n+((m-2)/2);
  28. else r1=n;
  29.  
  30. ll half=(m-1)/2;
  31. ll l2=-(n+half);
  32. ll r2=-n+half;
  33.  
  34. ull len1=seg_len(l1,r1);
  35. ull len2=seg_len(l2,r2);
  36.  
  37. ll il=max(l1,l2);
  38. ll ir=min(r1,r2);
  39. ull inter=seg_len(il,ir);
  40.  
  41. ull ans=len1+len2-inter;
  42. cout<<ans<<"\n";
  43. }
  44.  
  45. int main()
  46. {
  47. ios_base::sync_with_stdio(0);
  48. cin.tie(0);
  49. solve();
  50. }
  51.  
Success #stdin #stdout 0.01s 5288KB
stdin
Standard input is empty
stdout
187759337275967