n, m = map(int, input().split())
k1 = ((n//m)*(n//m -1)//2)*(m - (n%m)) + ((n//m + 1)*(n//m)//2)*(n%m)
k2 = (n-m+1)*(n-m)//2
print(k1,k2)
#include<bits/stdc++.h>
using namespace std ;
#define ll long long int
ll pairs(ll n ) {
return n * (n - 1) / 2 ;
}
int main() {
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin) ;
freopen("output.txt", "w", stdout) ;
#endif
ll n, m ;
cin >> n >> m ;
ll a(n / m), b(n % m) ;
ll min = pairs(a) * (m - b) + pairs(a + 1) * b ;
ll max = pairs(n - m + 1) ;
cout << min << " " << max << endl;
}
where is the explaination, only code doesnt work, give me the explaination
332. Reconstruct Itinerary | 368. Largest Divisible Subset |
377. Combination Sum IV | 322. Coin Change |
307. Range Sum Query - Mutable | 287. Find the Duplicate Number |
279. Perfect Squares | 275. H-Index II |
274. H-Index | 260. Single Number III |
240. Search a 2D Matrix II | 238. Product of Array Except Self |
229. Majority Element II | 222. Count Complete Tree Nodes |
215. Kth Largest Element in an Array | 198. House Robber |
153. Find Minimum in Rotated Sorted Array | 150. Evaluate Reverse Polish Notation |
144. Binary Tree Preorder Traversal | 137. Single Number II |
130. Surrounded Regions | 129. Sum Root to Leaf Numbers |
120. Triangle | 102. Binary Tree Level Order Traversal |
96. Unique Binary Search Trees | 75. Sort Colors |
74. Search a 2D Matrix | 71. Simplify Path |
62. Unique Paths | 50. Pow(x, n) |