201609-1
#include <iostream>
using namespace std;
#define MAX 1000
int a[MAX];
int main()
{
int n;
cin>>n;
for(int i=0;i<n;i++)
cin>>a[i];
int max=0;
for(int i=1;i<n;i++)
{
int t=a[i]-a[i-1];
if(t<0)
t=0-t;
if(max<t)
max=t;
}
cout<<max<<endl;
}
201609-2
90分代码:
#include <iostream>
using namespace std;
#define MAX 100
int set[20];//记录每排空缺的座位
int n,p;
int main()
{
cin>>n;
for(int i=0;i<20;i++)
set[i]=5;//初始时每排都有5个空缺座位
for(int i=0;i<n;i++)
{
cin>>p;
for(int j=0;p&&j<20;j++)
{
if(p<=set[j])//第j排有p个空缺座位
{
for(int k=1;k<=p;k++)
{
int number1=j*5+5-set[j]+k;
cout<<number1<<" ";
}
cout<<endl;
set[j]-=p;
p=0;
}
}
for(int j=0;p&&j<20;j++)
{
if(set[j]>0)//如果当前排的空缺数大于0
{
for(int k=1;k<=set[j];k++)
{
int number2=j*5+5-set[j]+k;
cout<<number2<<" ";
}
cout<<endl;
if(p>=set[j]){ //如果p大于等于当前排的空缺数,则先分配sets[j]个座位(在之后的排再分配p-set[j]个座位)
p-=set[j];
set[j]=0;
}
else{//反之全部分配
set[j]-=p;
p=0;
}
}
}
}
return 0;
}
100分代码(非原创!!)
#include<iostream>
using namespace std;
int main(){
int n,num,i,j,k,r,flag=0;
cin>>n;
int seat[20][5]={0};
for(i=0;i<n;i++){
cin>>num;
flag=0;
for(j=0;j<20&&flag==0;j++){
for(k=0;k<5&&flag==0;k++){
if(seat[j][k]==1){
continue;
}
else if(k<=5-num){ //如果该排有连续的票
for(r=0;r<num;r++){
seat[j][k+r]=1;
cout<<j*5+k+r+1;
if(r!=num-1){
cout<<" ";
}
else{
cout<<endl;
}
}
flag=1;
}
else if(k>5-num){ //如果该排没有连续的票
break;
}
}
}
// cout<<"flag:"<<flag<<endl;
r=0;
if(flag==0){ //如果每一排都没有连续的票
for(j=0;j<20&&flag==0;j++){
for(k=0;k<5&&flag==0;k++){
if(seat[j][k]==1){
continue;
}
else{
seat[j][k]=1;
cout<<j*5+k+1;
r++;
if(r==num){
flag=1;
cout<<endl;
}
else{
cout<<" ";
}
}
}
}
}
}
}