zoukankan      html  css  js  c++  java
  • <每日一题> Day2:CodeForces-1141C.PolycarpRestoresPermutation(思维题)

    原题链接

    参考代码:

    #include <iostream>
    #include <cstring>
    using namespace std;
    
    const int maxn = 400000 + 5, INF = 0x3f3f3f3f;
    int value[maxn], ans[maxn];
    bool vis[maxn], flag;
    
    int main() {
        int n;
        cin >> n;
        flag = true;
        memset(vis, false, sizeof vis);
        for(int i = 0; i < n - 1; i ++) cin >> value[i];
        ans[0] = 1;
        int Min = INF;
        for(int i = 0; i < n - 1; i ++) {
            ans[i + 1] = ans[i] + value[i];
        }
        for(int i = 0; i < n; i ++)
            Min = min(Min, ans[i]);
        
        for(int i = 0; i < n; i ++) {
            ans[i] += 1- Min;
            if(ans[i] > 0 && ans[i] < maxn)
                vis[ans[i]] = true;
        }
        for(int i = 1; i <= n; i ++)
            if(!vis[i]) flag = false;
        if(!flag) cout << -1;
        else {
            for(int i = 0; i < n; i ++) cout << ans[i] << ' ';
        }
        cout << endl;
        return 0;
    }
  • 相关阅读:
    撒谎
    可怜的猪
    GIS学习笔记(五)
    国产木马冰河2.2
    矛盾
    GIS学习笔记(六)
    男人如衣服
    VS2005快捷键大全
    慧悟
    DOS命令
  • 原文地址:https://www.cnblogs.com/bianjunting/p/10905982.html
Copyright © 2011-2022 走看看