CF1916A 题解

· · 题解

突然发现了一道能写题解的红题,光速过来写题解。

思路

先根据题意输入 b 并计算 b 的乘积,用 ans 记录。

  1. 如果 2023 \bmod ans = 0,那么说明 ans2023 的因数,所以这时,我们需要先输出 Yes 再输出 \displaystyle \frac{2023}{ans}k - 11
  2. 如果 2023 \bmod ans \ne 0,那么说明 ans 不是 2023 的因数,所以直接输出 No

AC Code:

#include<bits/stdc++.h>
#define int long long
using namespace std;
int t,n,k,b,ans=1;
signed main(){
    cin>>t;
    while(t--){
        ans=1;
        cin>>n>>k;
        for(int i=0;i<n;i++)cin>>b,ans*=b;
        if(2023%ans==0){
            cout<<"Yes"<<endl<<2023/ans;
            for(int i=1;i<k;i++)cout<<' '<<1;
            cout<<endl;
        }
        else cout<<"No"<<endl;;
    }
    return 0;
}