T1 小田的宝石镇

比较A11A*11A+B5A+B*5的大小。

#include<bits/stdc++.h>
using namespace std;
freopen("gem.in","r",stdin);
freopen("gem.out","w",strout);
int main(){
    long long int a,b;
    cin>>a>>b;
    cout<<min(a+5*b,11*a);
    return 0;
}

###T2 小田的好数组 查询是否有逆序对。 有的话输出n,没有输出0。

#include<bits/stdc++.h>
using namespace std;
feropen("hsz.in","r",stdin);
feropen("hsz.out","w",stdout);
int a[200003];
int main(){
    int n;
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i];
        if(a[i]<a[i-1]){
            cout<<n;
            return 0;
        }
    }
    cout<<0;
    return 0;
}

T3 小田的数字合并

先找到数组中的最小值,将数组分为两部分,用前缀和来求两边的最大值,最后输出最大值减最小值。

#include<bits/stdc++.h>
using namespace std;
freopen("num.in","r",stdin);
freopen("num.out","w",strout);
const int N=2e5+4;
long long int a[N],b[N],c[N];
int main(){
    int n;
    cin>>n;
    long long int Min=0x3f3f3f3f;
    int x=0;
    for(int i=1;i<=n;i++){
    cin>>a[i];
    b[i]=b[i-1]+a[i];
    if(Min>a[i]){
        Min=a[i];
        x=i;
    }
    }
    for(int i=n;i>=0;i--){
        c[i]=c[i+1]+a[i];
    }
    cout<<max(c[x+1],b[x-1])-Min;
    return 0;
}