C.Otro código de restauración de matrices obliga a la ronda 667 (división 3)

Inserte la descripción de la imagen aquí
Idea: Es construir una secuencia aritmética con n elementos en ella, y asegurarse de que debe haber xey en ella, y construir una secuencia aritmética con la suma más pequeña.
Debido a que el rango de datos de este tema es muy pequeño, deberíamos intente usar xey Coloque algunos elementos más en el medio, luego enumere directamente entre xey para encontrar la tolerancia más pequeña, encuentre el primer elemento después de determinar la tolerancia y luego genere la salida.
He estado pensando en la pregunta 1200 durante mucho tiempo. ¡Es una lástima! !

#include <bits/stdc++.h>

using namespace std;

int main()
{
    
    
    int t; cin>>t;
    while(t--){
    
    
        int x,y,n; cin>>n>>x>>y;
        int s = y-x;
        int ans = 0;
        for(int i=0;i<=n-2;i++){
    
    
            if(s%(i+1)==0){
    
    
                ans = i;
            }
        }
        //cout<<ans<<endl;
        int step = s/(ans+1);
        //cout<<step<<endl;
        int begin1 = x;
        for(int i=n-ans-2;i>0;i--){
    
    
            if(begin1-step>0){
    
    
                begin1-=step;
            }
            else break;
        }
        for(int i=0;i<n;i++){
    
    
            cout<<begin1+step*i<<" ";
        }
        cout<<endl;
    }
    return 0;
}

Supongo que te gusta

Origin blog.csdn.net/qq_43811879/article/details/108782738
Recomendado
Clasificación