Educational Codeforces Round 80 (Rated for Div. 2)
【A. Deadline】
【题目大意】
([]表示向上取整)
【解题思路】
【AC代码】
#include <bits/stdc++.h>
#define max(a, b) ((a) > (b) ? (a) :(b))
#define min(a, b) ((a) < (b) ? (a) :(b))
#define Rep(i, n) for(register int i = 1;i <= (n); ++i)
using namespace std;
typedef long long ll;
int main() {
int t;
scanf("%d", &t);
while (t--) {
ll n, d;
scanf("%lld%lld", &n, &d);
if (d <= n) {
puts("YES");
continue;
}
ll temp = (n + 1) * (n + 1) - 4 * d;
if (temp < 0) puts("NO");
else {
ll k = sqrt(temp);
ll x1 = ceil((n - 1 - k) / 2);
ll x2 = (n - 1 + k) / 2;
ll i = x1;
for (; i <= x2; ++i) {
ll temp = i * i + (1 - n) * i + d - n;
if (temp <= 0) {
puts("YES");
break;
}
}
if (i > x2) puts("NO");
}
}
return 0;
}
【B. Yet Another Meme Problem】
【题目大意】
【解题思路】
【AC代码】
#include <bits/stdc++.h>
#define max(a, b) ((a) > (b) ? (a) :(b))
#define min(a, b) ((a) < (b) ? (a) :(b))
#define Rep(i, n) for(register int i = 1;i <= (n); ++i)
using namespace std;
typedef long long ll;
ll c[] = { 0,9,99,999,9999,99999,999999,9999999,99999999,999999999,9999999999 };
int main() {
int t;
cin >> t;
while (t--) {
ll a, b;
cin >> a >> b;
ll i = 1;
while (b >= c[i]) ++i;
ll ans = (i - 1) * a;
cout << ans << endl;
}
return 0;
}