

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<cmath>
#include<map>
#include<queue>
#include<stack>
#define INF 0x3f3f3f3f
#define ull unsigned lonb long
#define ll long long
#define IN __int64
#define N 1000010
#define M 1000000007
using namespace std;
int a[N];
int main()
{
int T=1,t,n,m,i,j;
int top;
int l,r,mid;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
memset(a,0,sizeof(a));
top=0;a[0]=-INF;
for(i=1;i<=n;i++)
{
scanf("%d",&m);
m-=i;
if(m>=a[top])
a[++top]=m;
else
{
l=1;r=top;
while(l<=r)
{
mid=(l+r)/2;
if(m>=a[mid])
l=mid+1;
else
r=mid-1;
}
a[l]=m;
}
}
printf("Case #%d:\n%d\n",T++,n-top);
}
return 0;
}
|