# MK Beginner Round #3
## A. Đi học nghề phụ hồ
Người ra đề: HickWhither
Vì ô cửa sổ và bức tường đều là hình vuông nên ta có thể tính được kết quả như sau $\lfloor\frac{N}{K}\rfloor^2$.
### Code (By Swyrin)
```cpp
#include <bits/stdc++.h>
using namespace std;
#pragma GCC optimize("Ofast")
#define int long long
#define all(x) (x).begin(), (x).end()
#define sz(x) (x).size()
signed main ()
{
ios_base::sync_with_stdio (false);
cin.tie (nullptr);
int t;
cin >> t;
for (int i = 1; i <= t; ++i)
{
int n, k;
cin >> n >> k;
int cnt = (n / k) * (n / k);
cout << cnt << endl;
}
return 0;
}
```
## B. Đua thuyền
Người ra đề: GiaoSu
Khi sắp xếp lại vị trí của những chiếc thuyền, ta có thể dễ dàng biết được khoảng cách giữa các thuyền gần kề nhau từ đó suy ra kết quả.
### Code (By Swyrin)
```cpp
#include <bits/stdc++.h>
using namespace std;
#pragma GCC optimize("Ofast")
#define int long long
#define all(x) (x).begin(), (x).end()
#define sz(x) (x).size()
signed main() {
ios_base::sync_with_stdio(false); cin.tie(nullptr);
int n; cin >> n;
vector<int> a(n); for (int &v: a) cin >> v;
sort(all(a));
int mean = INT_MAX;
for (int i = 1; i < n; ++i) {
mean = min(mean, a[i] - a[i - 1]);
}
cout << mean;
return 0;
}
```
## C. Yugi bán hàng
Người ra đề: YugiHacker
Đầu tiên hãy xem xét một vài ví dụ sau:
1. $n=11,k=3$
Một trong số các cách bố trí gian hàng ở trường hợp tốt nhất ("." là vị trí có thể đặt gian hàng, "X" là vị trí các gian hàng được đặt sẵn, "*" là vị trí không thể đặt gian hàng):
```
. X . . X . . X . * *
```
2. $n=5,k=3$
```
X . . X X
```
Từ đó có thể rút ra nhận xét sẽ luôn là tối ưu để đặt các gian hàng cách nhau 2 ô nhiều nhất có thể. Khi đó số gian hàng có thể đặt trong trường hợp tốt nhất là $min(n-k,k\cdot2)$.
Ngoài ra còn một vài trường hợp đặc biệt cần xét.
### Code (By Ice Cream)
```cpp
#include <bits/stdc++.h>
using namespace std;
#define FASTIO ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define ll long long
#define ld long double
#define ar array
#include<cstdio>
#define vt vector
#include<fstream>
//ifstream fin("template.in");
//ifstream fin("template.in");
#include<fstream>
#define pb push_back
#define all(c) (c).begin(), (c).end()
//#define length(x) (int)(x).size()
#define fi first
#define se second
#define vt vector
const int mxn = 2e5;
int main()
{
FASTIO;
ll n, k; cin >> n >> k;
ll mn = min((ll)1, n - k);
ll mx = min(k * 2, n - k);
cout << mn << " " << mx;
return 0;
}
```