Run
#include <bits/stdc++.h>
using namespace std;
vector arr;
int prevmin=-1;
int flag=0;
int x,n,q;
int sorting(int start,int end)
{
if(start+1==n) {start=0;end=end-n;}
if(start==end) return arr[start];
return min(arr[start],sorting(start+1,end));
}
int func(int start,int end)
{
if(flag==0) {flag++;return prevmin=sorting(start,end);}
if(arr[start-1]==prevmin) return prevmin;
return prevmin=(arr[end]<=prevmin)?prevmin:sorting(start,end);
}
int main()
{
cin>>x>>n;
int ans=0;
for(int i=0;i>q;arr.push_back(q);}
for(int i=0;i < n;i++)
{
ans=max(ans,func(i,i+x-1));
}
cout << ans;
}
Run
s=int(input())
n=int(input())
a=[]
for i in range(n):
a.append(int(input()))
def min_in_segment(start,end,prev,s,prev_min):
if s==1:
return a[start]
else:
if prev==-1 or prev_min==-2:
return min(a[start:end+1])
elif prev_min!=-2:
if prev!=prev_min:
if a[end] < prev_min:
return a[end]
else:
return prev_min
else:
return min(a[start:end+1])
msf=-1
prev=-1
prev_min=-2
for i in range(n-s+1):
new_min=min_in_segment(i,i+s-1,prev,s,prev_min)
msf=max(msf,new_min)
prev=a[i]
prev_min=new_min
print(msf)
Run
import java.util.*;
public class DiskSpace
{
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
int x=sc.nextInt();
int n=sc.nextInt();
int arr[]=new int[n];
for(int i=0;i < n;i++)
arr[i]=sc.nextInt();
int min=Integer.MAX_VALUE;
int max=Integer.MIN_VALUE;
for(int i=0;i <= n-x;i++)
{
min=Integer.MAX_VALUE;
for(int j=i;j<(i+x);j++)
min=Math.min(min,arr[j]);
max=Math.max(min,max);
}
System.out.println(max);
}
}
Login/Signup to comment