http://codeforces.com/contest/496
A:
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <math.h>
#include <stdlib.h>
using namespace std;
int n;
int p[110];
int main()
{
while (scanf("%d",&n)!=EOF)
{
for(int i=1;i<=n;i++)
scanf("%d",&p[i]);
int ans = 0;
int q[110];
for(int i=2;i<=n-1;i++)
{
ans = 0;
int t = p[i];
p[i] = -1;
for( int j =1;j<=n-1;j++)
{
if (p[j] != -1)
ans = max(ans,p[j+1] - p[j]);
else
ans = max(ans,p[j+1] - p[j-1]);
}
q[i] = ans;
p[i] = t;
}
ans = 100000;
for(int i=2;i<=n-1;i++)
ans = min(ans ,q[i]);
printf("%d\n",ans);
}
return 0;
}
B:
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <string>
#include <string.h>
#include <math.h>
#include <stdlib.h>
using namespace std;
typedef long long LL;
const int MAXN = 1005;
int n;
string s;
string ans;
int main() {
cin >> n;
cin >> s;
ans = s;
for(int i = 0; i < n; ++i)
{
string cur = "0";
for(int j = 1; j < n; ++j)
cur += (char)('0' + ((int)s[(i + j) % n] - s[i] + 10) % 10);
//cout<<cur<<endl;
if (cur < ans) ans = cur;
}
cout << ans << endl;
return 0;
}