为什么总是格式错误呢?(样例都过)
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#define INF 0x3f3f3f3f
using namespace std;
const int maxn = 10000005;
long long dot[100005];
int flag[maxn];
long long dot1[100005];
int main(void) {
int n;
long long a,b;
bool flag1 = false;
scanf("%d%lld%lld",&n,&a,&b);
memset(dot,0,sizeof(dot));
memset(flag,INF,sizeof(flag));
memset(dot1,0,sizeof(dot1));
for(int i = 1; i <= n; i ++) {
scanf("%lld",&dot[i]);
dot1[i] = dot[i];
flag[dot[i]] = -2;
}
sort(dot + 1, dot + n + 1);
if(dot[1] + dot[n] > a && dot[1] + dot[n] > b) {
printf("NO\n");
return 0;
}
for(int i = 1; i <= n; i ++) {
if(flag[dot[i]]== 0 || flag[dot[i]]== -1) {
continue;
}
if(dot[i] && flag[b-dot[i]] == -2) {
int value = b-dot[i];
flag[dot[i]]= -1;
flag[value]= -1;
} else if(dot[i] && flag[a-dot[i]]== -2) {
int value = a-dot[i];
flag[dot[i]]= 0;
flag[value]= 0;
} else {
flag1 = true;
break;
}
}
if(!flag1) {
printf("YES\n");
for(int i = 1; i <= n; i ++) {
if(flag[dot1[i]] == -1) flag[dot1[i]] = 1;
printf("%lld",flag[dot1[i]]);
printf(" ");
}
printf("\n");
}
else{
printf("NO\n");
}
return 0;
}
#include<iostream>
#include<algorithm>
#include<cstring>
#define INF 0x3f3f3f3f
using namespace std;
const int maxn = 10000005;
long long dot[100005];
int flag[maxn];
long long dot1[100005];
int main(void) {
int n;
long long a,b;
bool flag1 = false;
scanf("%d%lld%lld",&n,&a,&b);
memset(dot,0,sizeof(dot));
memset(flag,INF,sizeof(flag));
memset(dot1,0,sizeof(dot1));
for(int i = 1; i <= n; i ++) {
scanf("%lld",&dot[i]);
dot1[i] = dot[i];
flag[dot[i]] = -2;
}
sort(dot + 1, dot + n + 1);
if(dot[1] + dot[n] > a && dot[1] + dot[n] > b) {
printf("NO\n");
return 0;
}
for(int i = 1; i <= n; i ++) {
if(flag[dot[i]]== 0 || flag[dot[i]]== -1) {
continue;
}
if(dot[i] && flag[b-dot[i]] == -2) {
int value = b-dot[i];
flag[dot[i]]= -1;
flag[value]= -1;
} else if(dot[i] && flag[a-dot[i]]== -2) {
int value = a-dot[i];
flag[dot[i]]= 0;
flag[value]= 0;
} else {
flag1 = true;
break;
}
}
if(!flag1) {
printf("YES\n");
for(int i = 1; i <= n; i ++) {
if(flag[dot1[i]] == -1) flag[dot1[i]] = 1;
printf("%lld",flag[dot1[i]]);
printf(" ");
}
printf("\n");
}
else{
printf("NO\n");
}
return 0;
}