社区讨论
为什么输出的形式不大一样,但是一个0分一个100分?
P10672【MX-S1-T1】 壁垒参与者 2已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @m1hd65wd
- 此快照首次捕获于
- 2024/09/25 12:27 去年
- 此快照最后确认于
- 2025/11/04 18:49 4 个月前
CPP
#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;
const int N = 100010;
struct node
{
int to, id;
}tong[N];
int n, a[N], cnt;
bool cmp (node x, node y)
{
if(x.to == y.to) return x.id < y.id;
return x.to > y.to;
}
int main ()
{
scanf("%d", &n);
for(int i = 1; i <= n; i++)
{
scanf("%d", &a[i]);
if(!tong[a[i]].to)
{
cnt++;
tong[a[i]].id = a[i];
}
tong[a[i]].to++;
}
if(cnt % 2 == 1)
{
printf("-1");
return 0;
}
sort(tong + 1, tong + 1 + n, cmp);
for(int i = 1; i <= cnt; i++)
{
while(tong[i].to-- && tong[i + 1].to--)
{
printf("%d %d ", tong[i].id, tong[i + 1].id);
}
}
return 0;
}
这是零分的
CPP#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;
const int N = 100010;
struct node
{
int to, id = 0x3f3f3f3f;
}tong[N];
int n, a[N], cnt;
bool cmp (node x, node y)
{
if(x.to == y.to) return x.id < y.id;
return x.to > y.to;
}
int main ()
{
scanf("%d", &n);
for(int i = 1; i <= n; i++)
{
scanf("%d", &a[i]);
if(tong[a[i]].to == 0)
{
cnt++;
tong[a[i]].id = a[i];
}
tong[a[i]].to++;
}
if(cnt % 2 == 1)
{
printf("-1");
return 0;
}
for(int i = 1; i <= n; i++)
{
if(tong[i].to) printf("%d ", tong[i].id), tong[i].to--;
}
for(int i = 1; i <= n; i++) while(tong[i].to) printf("%d ", tong[i].id), tong[i].to--;
return 0;
}
这是满分的
感谢大佬
回复
共 1 条回复,欢迎继续交流。
正在加载回复...