cf 667div3

博客介绍了如何处理CF 667div3问题,该问题要求在给定数组长度n和两个特定元素x、y的情况下,使数组中最大元素尽可能小。解决方案涉及计算间隔大小并按特定顺序输出数组元素。
摘要由CSDN通过智能技术生成

C

题意:
t组测试样例,n,x,y;n表示数组元素的个数,x,y表示其中两个元素,
要求:数组元素的最大值尽可能高小
输出数组

思路:
间隔大小:(y - x)% (n - 1)
先输出x,y之间的数字,在数出x之前的数字,最后是y之后的数字

#include <bits/stdc++.h>
using namespace std;
int t,n,x,y,dis;
int main(){
  // freopen("in","r",stdin);
    ios::sync_with_stdio(0);
    cin >> t;
    while(t--){
        cin >> n >> x >> y;
        for(dis = n - 1;;dis--){
            if((y - x) % dis == 0) {
                dis = (y - x) / dis;
                break;
            }
        }
        for(int i = x; i <= y && n > 0; i+=dis){
            cout << i  << " ";
            n--;
        }
        for(int i = x - dis; i > 0 && n > 0;i-=dis){
            cout << i  << " " ;
            n--;
        }
        for(int i = y + dis;n > 0;i+=dis){
            cout  << i<< " ";
            n--;
        }
        cout << endl;
    }
    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值