1851D - Prefix Permutation Sums - CodeForces Solution


implementation math

Please click on ads to support us..

C++ Code:

#include <bits/stdc++.h>
using namespace std;

using LL = long long;

void solve()
{
    LL n;
    cin>>n; 
    vector<LL> a(n-1),b(n-1),vis(n+1);
    LL d = -1;
    for(int i = 0;i<n-1;i++) {
        cin>>a[i];
        if(i){
            b[i] = a[i] - a[i-1];
        }else{
            b[i] = a[i];
        }
    }
    int flag = 0;
    for(int i = 0;i<n-1;i++) {
        if(b[i]>n || vis[b[i]]){
            if(flag){
                cout<<"NO"<<endl;
                return;
            }
            d = b[i];
            flag = 1;
        }
        if(b[i]<=n)
            vis[b[i]] = 1;
    }
    LL sum = 0;
    int mis = 0;
    for(int i = 1;i<=n;i++) {
        if(!vis[i]){
            sum += i;
            mis++;
        } 
    }
    cout<<((sum==d || mis == 1)?"YES":"NO")<<endl;
}

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    int t;
    cin >> t;
    while (t -- ) solve();
}


Comments

Submit
0 Comments
More Questions

119A - Epic Game
703A - Mishka and Game
1504C - Balance the Bits
988A - Diverse Team
1312B - Bogosort
1616B - Mirror in the String
1660C - Get an Even String
489B - BerSU Ball
977C - Less or Equal
1505C - Fibonacci Words
1660A - Vasya and Coins
1660E - Matrix and Shifts
1293B - JOE is on TV
1584A - Mathematical Addition
1660B - Vlad and Candies
1472C - Long Jumps
1293D - Aroma's Search
918A - Eleven
1237A - Balanced Rating Changes
1616A - Integer Diversity
1627B - Not Sitting
1663C - Pōja Verdon
1497A - Meximization
1633B - Minority
688B - Lovely Palindromes
66B - Petya and Countryside
1557B - Moamen and k-subarrays
540A - Combination Lock
1553C - Penalty
1474E - What Is It