Problem Link: https://onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&page=show_problem&problem=3183
Code:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int t;
cin>>t;
for(int z=1; z<=t; z++)
{
vector<int> v;
int n,x,max_distance=-1;
cin>>n;
for(int i=0; i<n; i++)
{
cin>>x;
v.push_back(x);
if(i==0) max_distance=v[0];
else max_distance=max(max_distance, v[i]-v[i-1]);
}
int ans=max_distance;
for(int i=0; i<n; i++)
{
if(i==0)
{
if(max_distance==v[0]) max_distance--;
}
else if(max_distance==v[i]-v[i-1]) max_distance--;
else if(max_distance<v[i]-v[i-1])
{
ans=ans+1;
break;
}
}
cout<<"Case "<<z<<": "<<ans<<endl;
}
return 0;
}