70pts求调
查看原帖
70pts求调
993779
FurippuWRY楼主2023/10/14 18:50
#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

2023/10/14 18:50
加载中...