A. Long Comparison
题目大意
莫诺卡普在白板上写下两个数字。这两个数字都遵循一个特定的格式:一个正整数x,末尾加了p个零。
现在莫诺卡普要求你比较这两个数字。你能帮助他吗?
输入
第一行包含一个整数t( 1 ≤ t ≤ 1 0 4 1≤t≤10^4 1≤t≤104)–测试用例的数量。
每个测试案例的第一行包含两个整数 x 1 x_1 x1和 p 1 p_1 p1 ( 1 ≤ x 1 ≤ 1 0 6 1≤x_1≤10^6 1≤x1≤106; 0 ≤ p 1 ≤ 1 0 6 0≤p_1≤10^6 0≤p1≤106) - 第一个数字的描述。
每个测试案例的第二行包含两个整数 x 2 x_2 x2和 p 2 p_2 p2( 1 ≤ x 2 ≤ 1 0 6 1≤x_2≤10^6 1≤x2≤106; 0 ≤ p 2 ≤ 1 0 6 0≤p_2≤10^6 0≤p2≤106)–第二个数字的描述。
输出
对于每个测试案例,打印给定两个数字的比较结果。如果第一个数字比第二个数字小,打印’<’。如果第一个数字比第二个数字大,打印’>’。如果它们相等,打印’=’。
题解
#include <bits/stdc++.h>
using namespace std;
int main(){
int t;
cin >> t;
while (t--){
long long x1, x2;
int p1, p2;
cin >> x1 >> p1 >> x2 >> p2;
int mn = min(p1, p2);
p1 -= mn;
p2 -= mn;
if (p1 >= 7)
cout << ">" << endl;
else if (p2 >= 7)
cout << "<" << endl;
else{
for (int i = 0; i < p1; ++i) x1 *= 10;
for (int i = 0; i < p2; ++i) x2 *= 10;
if (x1 < x2)
cout << "<" << endl;
else if (x1 > x2)
cout << ">" << endl;
else
cout << "=" << endl;
}
}
}
B. Absent Remainde
题目大意
题解
#include <bits/stdc++.h>
using namespace std;
int main() {
int t;
cin >> t;
while (t--) {
int n;
cin >> n;
vector<int> a(n);
for (int &x : a) cin >> x;
int mn = *min_element(a.begin(), a.end());
for (int i = 0, k = 0; k < n / 2; ++i) if (a[i] != mn) {
cout << a[i] << ' ' << mn << '\n';
k += 1;
}
}
}
C. Poisoned Dagger
题目大意
题解
#include <bits/stdc++.h>
using namespace std;
using li = long long;
int main() {
int t;
cin >> t;
while (t--) {
int n;
li h;
cin >> n >> h;
vector<li> a(n);
for (li &x : a) cin >> x;
li l = 1, r = 1e18;
while (l <= r) {
li m = (l + r) / 2;
li sum = m;
for (int i = 0; i < n - 1; ++i)
sum += min(m, a[i + 1] - a[i]);
if (sum < h) l = m + 1;
else r = m - 1;
}
cout << r + 1 << '\n';
}
}