A题

大的减小的就是公差,再加上大数就行了

#include <bits/stdc++.h>
using namespace std;
#define endl '\n'
const int Mod=1e9+7;
typedef long long ll;
typedef unsigned long long ull;

int main(){
    int a,b;
    cin>>a>>b;
    cout<<max(a,b)+max(a,b)-min(a,b)<<endl;
}

B题

创建一个3位数的列表,输入之后排序。

排完序按着题目要求写条件就行了。

#include <bits/stdc++.h>
using namespace std;
#define endl '\n'
const int Mod=1e9+7;
typedef long long ll;
typedef unsigned long long ull;

int main(){
    vector<int> li(3);
    for(int i=0;i<3;i++) {
        cin>>li[i];
    }
    sort(li.begin(),li.end());
    if (li[0]==li[1] and li[1]==li[2])printf("Yes");
    else if (li[0]+1==li[1] and li[1]+1==li[2])printf("Yes");
    else printf("No");
}

C题

用一个布尔值表示是否满足条件,因为要把它写进进行递归的函数,所以用一个指针指向它。

是第几层就把列表开多大,再用一个数表示还剩几层需要判断,如果还要判断的层数不是0就递归

#include <bits/stdc++.h>
using namespace std;
#define endl '\n'
const int Mod=1e9+7;
typedef long long ll;
typedef unsigned long long ull;
 
void IS(vector<int> & vec,int n,bool * is) {
    int len=vec.size()+1;
    vector<int> ls(len);
    for(int i=0;i<len;i++) {
        cin>>ls[i];
    }
    for(int i=0;i<vec.size();i++) {
        if(vec[i]>ls[i] || vec[i]>ls[i+1]) {
            *is=false;
        }
    }
    if (n)IS(ls,n-1,is);
}
 
int main(){
    int T;
    cin>>T;
    while(T--) {
        int n;
        cin>>n;
        vector<int> vec(1);
        cin>>vec[0];
        bool is=true;
        bool * p=& is;
        n--;
        IS(vec,n-1,p);
        if(is)cout<<"YES"<<endl;
        else cout<<"NO"<<endl;
    }
}