1 条题解

  • 3
    @ 2023-5-22 21:01:10

    更好的阅读体验

    题目链接

    http://czoj.com.cn/p/P1673

    来源 CZOJ

    题目思路

    考虑贪心,对于每个为 00 的位置只设置比前面高 11,尽可能的让后面的位置选的高度数量更多。


    Solution by @

    完整代码

    #include<bits/stdc++.h>
    using namespace std;
    int n;
    int ans[100020];
    int main()
    {
        cin>>n;
        for(int i=1;i<=n;i++)
        {
            cin>>ans[i];
            if(ans[i]==0)ans[i]=ans[i-1]+1;
        }
        for(int i=1;i<=n;i++)
        {
            if(ans[i]<=ans[i-1]||ans[i]>1000000000||ans[i]<=0)
            {
                puts("NO");
                return 0;
            }
        }
        puts("YES");
        for(int i=1;i<=n;i++)
        {
            cout<<ans[i]<<" ";
        }
        cout<<endl;
        return 0;
    }
    

    Code by @

    • 1

    信息

    ID
    674
    时间
    1000ms
    内存
    256MiB
    难度
    1
    标签
    递交数
    170
    已通过
    69
    上传者