Atcoder Subarray Sum(简单构造)

题意:给你 n , s , k n,s,k ,然后让你输出一个序列,使得有 k k ( l , r ) (l,r) 可以使得 a l + a l + 1 + . . . . + a r = s a_l+a_{l+1}+....+a_r=s
思路:昨天脑抽了,怎么也过过不了最后两组数据死活找不到错误。。。
今天换了个思路。只需要出现 k k s s 即可。

#include<iostream>
#include<cstring>
#include<queue>
#include<map>
#include<stack>
#include<cstdio>
#include<sstream>
#include<algorithm>
#include<unordered_map>

using namespace std;
#define read(x) scanf("%d",&x)
#define Read(x,y) scanf("%d%d",&x,&y)
#define gc(x)  scanf(" %c",&x);
#define mmt(x,y)  memset(x,y,sizeof x)
#define write(x) printf("%d\n",x)
#define INF 0x3f3f3f3f
#define ll long long
#define mod  998244353
const  int N = 1e6+5;
int main(){
    ll n,s,k;
    cin >> n >> k >> s;
    ll c = s;
    if(s > 1) {
        c --;
    }
    else c ++;
    for(int i = 1;i <= k;++i) cout<<s<<' ';
    for(int i = 1;i <= n - k; ++i) cout<<c<<' ';
}
发布了632 篇原创文章 · 获赞 27 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/qq_43408238/article/details/104038908
今日推荐