//201609-1
#include <iostream>
#include <cstdio>
using namespace std;
int main(){
int n;scanf("%d", &n);
int arr[n];
for (int i = 0; i < n; i++)scanf("%d", &arr[i]);
int temp = 0;
for (int i = 1; i < n; i++)
if (abs(arr[i] - arr[i - 1]) > temp)
temp = abs(arr[i] - arr[i - 1]);printf("%d\n", temp);}
//201609-1
#include <bits/stdc++.h>
using namespace std;
int main(){
int n;scanf("%d", &n);
vector<int> v(n);
int res = 0;
for (int i = 0; i < n; i++){scanf("%d", &v[i]);
if (i > 0)
if (abs(v[i] - v[i - 1]) > res)
res = abs(v[i] - v[i - 1]);}printf("%d\n", res);
return 0;}
//201609-2
#include <bits/stdc++.h>
using namespace std;
int main(){
int n;scanf("%d", &n);
map<int, int> m;
//分配座位
//每排5个座位
for (int i = 0; i < 20; i++)
m[i] = 5;
int start, end;
//座位指令
while (n--){
int operation;scanf("%d", &operation);
//遍历所有排数
for (auto it = m.begin(); it != m.end(); it++){//当前的剩余座位数量能够满足当前座位指令要求的座位个数
if (it->second >= operation){
//确定当前排数的第一个空余座位
start = it->first * 5 + 1 + (5 - it->second);
end = start + operation;
//打印座位
for (int i = start; i < end; i++){
if (i != start)printf(" ");printf("%d", i);}printf("\n");
if (it->second == operation)
m.erase(it);
else
it->second -= operation;
operation = 0;
break;}}
//处理不能将所有的票的座位分配在同一排
bool flag = false;
while (operation > 0){
for (auto it = m.begin(); it != m.end(); it++){if (operation > it->second){
start = it->first * 5 + 1 + (5 - it->second);
end = start + it->second;
for (int i = start; i < end; i++){
if (flag)printf(" ");printf("%d", i);
flag = true;}
operation -= it->second;
m.erase(it);}else{
//当前排数能够满足当前座位数量的需求
start = it->first * 5 + 1 + (5 - it->second);
end = start + operation;
for (int i = start; i < end; i++){
if (flag)printf(" ");printf("%d", i);
flag = true;}
if (it->second == operation)
m.erase(it);
else
it->second -= operation;
operation = 0;
break;}}}}
return 0;}
//201609-2
#include <bits/stdc++.h>
using namespace std;
int main(){
int n;scanf("%d", &n);
// 1为可以购买,0为不能购买
vector<vector<int>> v(20, vector<int>(5, 1));
vector<int> dp(20, 5);
while (n--){
int num;scanf("%d", &num);
vector<int> res;
// 先得到哪一排能够满足当前购票需求
int row = -1;
for (int i = 0; i < dp.size(); i++)
if (dp[i] >= num){
dp[i] -= num;
row = i;
break;}if (row >= 0){
for (int col = 0; col < v[row].size() && num > 0; col++)
if (v[row][col] == 1){
res.emplace_back((row * 5) + col + 1);
num--;
v[row][col] = 0;}} else
for (int i = 0; i < v.size() && num > 0; i++)
for (int j = 0; j < v[i].size() && num > 0; j++)
if (v[i][j] == 1){
res.emplace_back((i * 5) + j + 1);
num--;}
for (auto it:res)printf("%d ", it);printf("\n");}
return 0;}