Codeforces 430A Points and Segments (easy)

来源:互联网 发布:膝盖伸直有响声 知乎 编辑:程序博客网 时间:2024/05/16 12:30

任何情况下都有解 不可能输出-1

将所有点排序后交替用红蓝染色 则在任意区间[li,ri]内红点个数R和蓝点个数B均满足|R-B|<=1

#include<bits/stdc++.h>using namespace std;struct points{    int c;    int a;}p[120];bool cmp1(points a,points b){    return a.c<b.c;}int f[120];int main(){    int n,m,l,r;    scanf("%d%d",&n,&m);    for(int i=1;i<=n;i++)    {        scanf("%d",&p[i].c);        p[i].a=i;    }    for(int i=1;i<=m;i++)        scanf("%d%d",&l,&r);    sort(p+1,p+n+1,cmp1);    for(int i=1;i<=n;i++)    {        if(i%2==0)            f[p[i].a]=0;        else            f[p[i].a]=1;    }    for(int i=1;i<=n;i++)    {        if(i!=1)            printf(" ");        printf("%d",f[i]);    }    printf("\n");    return 0;}


0 0