- 李红强 的博客
DAY1
- @ 2024-8-24 21:29:07
T1 小田的宝石镇
比较与的大小。
#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;
}