题解:P12408 始终

· · 题解

思路:

手玩一下,可以发现这个数组符合所有要求:

1,3,6,3,6,3\dots

把这个数组输出即可。\ 可以发现,前三个要求直接符合,然后可以算一下差,发现差和正常数组的最小公倍数都是 6,于是后两个条件也就满足啦,这个数组只要手玩一下就出来了。

code:

#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;

int main(){
    int n;
    cin>>n;
    if(n<=2){
        cout<<-1;
        return 0;
    }
    cout<<"1 3 6";
    for(int i=4;i<=n;i++){
        if(i%2==0) cout<<" 3";
        else cout<<" 6";
    }
    return 0;
}