社区讨论
(玄关)有大佬知道这道题的思路怎么写吗
B4274 [蓝桥杯青少年组省赛 2023] 数字游戏参与者 3已保存回复 6
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 6 条
- 当前快照
- 1 份
- 快照标识符
- @mhjtca8z
- 此快照首次捕获于
- 2025/11/04 08:10 4 个月前
- 此快照最后确认于
- 2025/11/04 08:10 4 个月前
CPP
#include <bits/stdc++.h>
#define int long long
using namespace std;
int n;
int a[1000005];
int p, q;
int ans;
int check() {
int diff = 1;
int t = a[1];
for (int i = 1; i <= n; i++) {
if (a[i] != t) {
t = a[i];
diff++;
}
}
return diff;
}
signed main() {
// freopen(".in","r",stdin);
// freopen(".out","w",stdout);
ios::sync_with_stdio(0);
cin.tie(0);
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> a[i];
}
sort(a + 1, a + n + 1);
p = 1, q = n;
while (check() >= 3) {
for (int i = p; i <= n; i++) {
if (a[i] > a[p]) {
a[p] = a[i];
break;
}
}
ans++;
if (check() < 3) {
break;
}
for (int i = q; i >= 1; i--) {
if (a[i] < a[q]) {
a[q] = a[i];
break;
}
}
ans++;
/*for (int i = 1; i <= n; i++) {
cout << a[i] << " ";
}
cout << "\n";*/
}
int maxx = -1, minn = 1000001;
for (int i = 1; i <= n; i++) {
maxx = max(maxx, a[i]);
minn = min(minn, a[i]);
}
cout << ans << " " << minn << " " << maxx;
return 0;
}
本蒟蒻的暴力代码
TLE 0%
回复
共 6 条回复,欢迎继续交流。
正在加载回复...