Wrong Answer(构造题)

链接:Wrong Answer

Wrong Answer

解析:

构造题

官方题解:

第一个数放-1,后面长为len,和为sum,每个都不为负数

k=(sum−1)(len+1)−sum⋅len=sum−len−1

随便代入一个len,构造输出,因为|ai|≤10^6,len>1000

ac:
 

#include<bits/stdc++.h>
#define ll long long
#define MAXN 2005*2
using namespace std;
 
void print(int k,int n)
{
    printf("-1 ");
    for(int i=0;i<k;i++)
    {
        if(n>=1000000)
        {
            printf("1000000 ");
            n=n-1000000;
        }
        else
        {
            printf("%d ",n);
            n=0;
        }
    }
}
 
int main()
{
    ll n;
    cin>>n;
    printf("2000\n");
    int k=1999;
    n=k+1+n;
    print(k,n);
}

猜你喜欢

转载自blog.csdn.net/weixin_41183791/article/details/88530282