2020 Niuke Summer Multi-School Training Camp (Sixth Session) Easy Construction

https://ac.nowcoder.com/acm/contest/5671/E

Solution: The sum of 1~n is n^2/2+n/2. If the condition is met, then when n is an even number, k must be n/2; n is an odd number, and k is 0;

Then you can construct 1, n-1,2, n-2...

#include <bits/stdc++.h>
using namespace std;
//#define int long long
 
signed main()
{
    int n,k;
    cin>>n>>k;
    if(n%2&&k==0){
        for(int i=1;i<=n/2;++i){
            printf("%d %d ",i,n-i);
        }
        printf("%d",n);
    }else if(n%2==0&&k==n/2){
        for(int i=1;i<n/2;++i){
            printf("%d %d ",i,n-i);
        }
        printf("%d %d",n/2,n);
    }else{
        printf("-1");
    }
}

 

Guess you like

Origin blog.csdn.net/qq_44132777/article/details/107707669