#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll N = 114;
ll n, a[N], b[N], t, ans = 0, d[N], pts[N], p;
string s[N];
int main() {
ios::sync_with_stdio(false);
cin.tie(0), cout.tie(0);
cin >> n;
for (ll i = 1; i <= n; ++i) {
cin >> a[i] >> b[i];
pts[i] = 100 / a[i];
d[i] = a[i] - b[i];
ans += pts[i] * b[i];
}
cin >> t;
if (ans >= t){
puts("Already Au.");
return 0;
}
t -= ans;
for (ll i = 1; i <= n; ++i) {
bool flag = 0;
if (a[i] == b[i]) {
s[i] = "NaN";
continue;
}
for (ll j = 1; j <= d[i]; ++j) {
if (pts[i] * j >= t) {
s[i] = j + 48;
flag = 1;
break;
}
}
if (!flag) s[i] = "NaN";
}
for (ll i = 1; i <= n; ++i) {
cout << s[i] << '\n';
}
return 0;
}
结果 70pts
顺便问个问题,如果用以下代码输出样例 3
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll N = 114;
ll n, a[N], b[N], t, ans = 0, d[N], pts[N], p;
string s[N];
int main() {
ios::sync_with_stdio(false);
cin.tie(0), cout.tie(0);
cin >> n;
for (ll i = 1; i <= n; ++i) {
cin >> a[i] >> b[i];
pts[i] = 100 / a[i];
d[i] = a[i] - b[i];
ans += pts[i] * b[i];
}
cin >> t;
if (ans >= t){
puts("Already Au.");
return 0;
}
t -= ans;
for (ll i = 1; i <= n; ++i) {
bool flag = 0;
if (a[i] == b[i]) {
puts("NaN");
continue;
}
for (ll j = 1; j <= d[i]; ++j) {
if (pts[i] * j > t) {
cout << j << '\n';
flag = 1;
break;
}
}
if (!flag) puts("NaN");
}
return 0;
}
我编译器的输出结果为
NaN
NaN
NaN
3
4
4
3
在洛谷 IDE 里编译输出顺序相反
3
4
4
3
NaN
NaN
NaN
结果 30pts