# MK Beginner Round #2 Editorial ## A. Chuyến thám hiểm của Swyrin ### Hướng dẫn Ta sẽ xét lượng nước mà Swyrin đang có so sánh với lượng nước mà Swyrin cần. Nếu lượng nước đang có lớn hơn hoặc bằng lượng nước cần thì in ra `YES`, ngược lại in ra `NO`. ### Code ```cpp #include <bits/stdc++.h> using namespace std; int main(){ long long n,c; cin>>n>>c; int a[n]; long long sum=0; for (int i=0;i<n;i++){ cin>>a[i]; sum+=a[i]; } cout<<(sum>=c?"YES":"NO"); } ``` ## B. Chữ số cuối cùng ### Hướng dẫn Ta sẽ rút gọn biểu thức ban đầu: $A = 1\cdot2^k + 2\cdot2^k + ... + n\cdot2^k$ $A = 2^k\cdot (1 + 2 + ... + n)$ $A = 2^k\cdot \frac{n\cdot(n+1)}{2}$ Khi đó ta có thể tính được $A$ một cách tương đối nhanh. Cuối cùng lấy kết quả của $A$ chia lấy dư cho $10$ để có được chữ số cuối cùng. ### Code ```cpp #include <bits/stdc++.h> using namespace std; int main(){ long long n,k; cin>>n>>k; long long pw=1; for (int i=1;i<=k;i++){ pw*=2; } cout<<(n*(n+1)*pw/2)%10; } ``` ## C. Cân đồ ### Hướng dẫn Vì mọi số nguyên dương $N$ có thể được viết dưới hệ cơ số $2$: $d_n2^n+d_{n-1}2^{n-1}+ ... + d_02^0$. Trong đó $d_i$ $(0 \le i \le n)$ có giá trị là $0$ hoặc $1$. Từ đó suy ra, ta chỉ cần chuyển số nguyên dương $N$ về hệ cơ số $2$. Nếu $d_i$ là $1$ thì tức là quả cân thứ $i$ đã được dùng và ngược lại. ### Code ```cpp #include <bits/stdc++.h> using namespace std; int main(){ long long x,n; cin>>n>>x; vector<int> bin; while (x!=0){ bin.push_back(x%2); x/=2; } for (int i=0;i<(int)bin.size();i++){ if (bin[i]==1){ cout<<i<<" "; } } } ```