题目
原题链接:DIY Wooden Ladder
题意
给出的n个棍子的长度,求满足以下条件的k
1.共k+2个棍子
2.共2个长度不小于k+1的棍子
3.共k个长度不小于1的棍子
代码
#include<stdio.h>
#include<algorithm>
using namespace std;
int cmp(int a,int b){return a>b;}
int main(){
int n,m;
scanf("%d",&n);
while(n--){
scanf("%d",&m);
int s[100001] = {0};
for(int i=0;i<m;i++){
scanf("%d",&s[i]);
}
sort(s,s+m,cmp);
int k = s[1]-1,cnt = 0;
for(int i=2;i<m;i++){
if(s[i] >= 1) cnt++;
}
printf("%d\n",cnt<k?cnt:k);
}
}