/*
2
1.函数1(LineMax):先求出数列中最大的数赋值给max,位置赋值给l
3
2.函数2(InverOrder):将数组倒序
4
3.数组从1开始
5
4.错误: 表示数组位置混乱 ,数组改为从1开始***
6
*/
7
8
#include<iostream>
9
using namespace std;
10
int l,a[1000];//全局变量
11
12
void InverOrder(int n)//倒序 函数
13
{
14
int t=0,low=1,large=n;
15
for(;low<large;low++,large--)
16
{
17
t=a[low];
18
a[low]=a[large];
19
a[large]=t;
20
}
21
}
22
23
void LineMax(int n)//寻找最数
24
{
25
26
int max=0;
27
for(int i=1;i<=n;i++)
28
{
29
if(a[i]>max)
30
{
31
max=a[i];
32
l=i;//找出最大数的位置
33
}
34
}
35
}
36
int main()
37
{
38
int n,x=0;
39
cin>>n;
40
for(int i=1;i<=n;i++)
41
{
42
cin>>a[i];
43
}
44
for(int j=n;j>1;j--)
45
{
46
LineMax(j);
47
if(l==1)
{
InverOrder(j);
x++;
}
else if(l>1 && l<j)
{
InverOrder(l);
InverOrder(j);
x+=2;
}
}
cout<<x<<endl;
}
SWUST OJ翻煎饼(254) 翻煎饼 1000(ms) 65535(kb) 2198 / 8518麦兜最喜欢的食物是煎饼,每次在街上看到煎饼摊的时候都会在那里停留几分钟。最吸引麦兜还是煎饼师傅那一手熟练的翻煎饼的技术,一堆煎饼在那里,师傅只需要用铲子翻几下,就让煎饼整齐的叠在了一起。 这天,为了庆祝麦兜被保送上研究生,他从煎饼师傅那里买回来一些煎饼请客。但是麦兜买回的煎饼大小不一,麦兜太想吃煎饼了,他想吃这些煎饼中最大的那个。麦兜还知道同学们也很喜欢煎饼,为了表示他的诚意,他想让同学们先吃,麦兜最后吃,因此,麦兜想把煎饼按照从小到大的顺序叠放在一起,大的在最下面。这样麦兜就可以在最后拿到最大的那一块煎饼了。 现在请你帮助麦兜用煎饼师傅翻煎饼的方法把麦兜买的煎饼从小到大的叠在一起。煎饼师傅的方法是用铲子插入两块煎饼之间,然后将铲子上的煎饼翻一转,这样铲子上第一个煎饼就被翻到了顶上,而原来顶上的煎饼则被翻到了刚才插入铲子的地方。麦兜希望这样翻煎饼的次数最少。输入输入包括两行,第一行是一个整数n(1<=n<=1000),表示煎饼的个数,接下来的一行有n个不相同的整数,整数间用空格隔开,每个整数表示煎饼的大小(直径),左边表示顶部,右边表示底部。输出输出为一行,翻煎饼的最少次数样例输入5
5 4 2 3 1
样例输出4