题意:给定一个序列,每回合可选择一个数,向后移动至首个大于他的数字前,问最少需要多少回合使排列有序。
统计有多少个数字满足在他后面有小于他的数字- -
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
int a[1000500];
int main()
{
int t,n;
scanf("%d",&t);
for(int cas=1;cas<=t;cas++)
{
int i;
int ans=0,d;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
d=a[n-1];
for(i=n-2;i>=0;i--)
{
if(d<a[i])
ans++;
else
d=a[i];
}
printf("Case #%d: %d\n",cas,ans);
}
return 0;
}