题目
题意
有n张画,每张画有对应的评分。问重新排序后,最大的满足s[i-1]<s[i]的数。
参考了其他作者的思路和代码。排序后找满足条件的数字组,但只能交换一次,所以利用结构体判断是否交换过。
代码
#include<bits/stdc++.h>
using namespace std;
struct node{
int b,f;
}s[1000];
int cmp(node a,node b){
return a.b<b.b;
}
int main() {
int n,ans=0;
cin>>n;
for(int i=0; i<n; i++) {
cin>>s[i].b;
s[i].f=0;
}
sort(s,s+n,cmp);
for(int i=0;i<n;i++){
for(int j=i+1;j<n;j++){
if(s[i].b<s[j].b && s[j].f==0){
ans++;
s[j].f=1;
break;
}
}
}
cout<<ans;
return 0;
}