NC229194. 跳跃的排列
描述
令 表示最大的 满足 ,则 。最后对于所有 ,将 赋值为 。他想重复上述操作若干次。若操作 次和操作 次序列保持不变,那么跳跃停止,跳跃次数为 。
输入描述
第一行, 输入一个数 。
第二行输入 个数,第 i 个数表示 。
输出描述
输出排列的跳跃次数。
示例1
输入:
4 4 1 3 2
输出:
1
说明:
经过 1 轮操作后,序列变成 ,经过 2 轮操作后,序列仍然是 ,因此排列跳跃了 次。示例2
输入:
10 1 9 2 6 8 7 4 3 5 10
输出:
1
说明:
经过 1 轮操作后,所有数都变成了 ,经过 2 轮操作后,序列仍然全都是 ,因此排列跳跃了 次。示例3
输入:
8 8 7 6 5 4 3 2 1
输出:
0
说明:
经过 1 轮操作后,序列仍然是 ,因此排列没有进行跳跃。C++ 解法, 执行用时: 242ms, 内存消耗: 420K, 提交时间: 2022-07-10 11:35:24
#include<bits/stdc++.h> using namespace std; int n,a,b; int main() { cin>>n>>a; for(int i=2;i<=n;i++) { int x; cin>>x; if(x>a)b=1; a=x; } cout<<b; }
Pascal 解法, 执行用时: 99ms, 内存消耗: 588K, 提交时间: 2021-10-19 18:05:21
var ans,num,n,i,p:longint; begin p:=0; readln(n); read(ans); for i:=1 to n-1 do begin read(num); if num>ans then p:=1; ans:=num; end; writeln(p); end.
Python3 解法, 执行用时: 338ms, 内存消耗: 123696K, 提交时间: 2022-07-10 13:47:45
n=int(input()) l1=list(map(int, input().split())) a=min(l1) if a==l1[-1]: print(0) else: print(1)