UVA 1623(p256)----Enter the Dragon

来源:互联网 发布:everest硬件检测软件 编辑:程序博客网 时间:2024/04/27 21:39
#include<iostream>#include<cstdio>#include<set>#include<cstring>using namespace std;const int maxn=1e6+50;int lake,n;int a[maxn];int ans[maxn];int have[maxn];set<int> s;int main(){    int t;    scanf("%d",&t);    while(t--)    {        int flag=1;        s.clear();        memset(ans,0,sizeof(ans));        memset(have,0,sizeof(have));        scanf("%d%d",&lake,&n);        for(int i=0; i<n; i++)        {            int x;            scanf("%d",&x);            a[i]=x;            if(!x) s.insert(i);            else            {                set<int>::iterator it=s.lower_bound(have[x]);                if(it==s.end())                    flag=0;                ans[*it]=x;                have[x]=i;                s.erase(*it);            }        }        if(!flag) printf("NO\n");        else        {            printf("YES\n");            for(int i=0; i<n-1; i++)                if(a[i]==0)                    printf("%d ",ans[i]);            if(a[n-1]==0&&ans[n-1]>=0) printf("%d",ans[n-1]);            printf("\n");        }    }    return 0;}

0 0
原创粉丝点击