Ranking (as of 2014-02-15): 27 out of 595
Language: C++
/*
UVa 12032 - The Monkey and the Oiled Bamboo
To build using Visual Studio 2012:
cl -EHsc -O2 UVa_12032_The_Monkey_and_the_Oiled_Bamboo.cpp
*/
#include <algorithm>
#include <cstdio>
using namespace std;
const int n_max = 100000;
int rungs[n_max];
int main()
{
int T;
scanf("%d", &T);
for (int t = 1; t <= T; t++) {
int n;
scanf("%d", &n);
for (int i = 0; i < n; i++)
scanf("%d", &rungs[i]);
int k = rungs[0];
for (int i = 1; i < n; i++)
k = max(k, rungs[i] - rungs[i - 1]);
int j = k;
if (rungs[0] == j)
j--;
for (int i = 1; i < n; i++) {
int d = rungs[i] - rungs[i - 1];
if (d == j)
j--;
else if (d > j) {
k++; break;
}
}
printf("Case %d: %d\n", t, k);
}
return 0;
}