其他分享
首页 > 其他分享> > K13414 厨师机器人

K13414 厨师机器人

作者:互联网

题目描述

    某AI工厂最近正在生产一批新的厨师机器人3.0版本,可以为人类做很多美味的饭菜,但由于工人的失误,里面混进去了两个厨师机器人2.0版本;已知目前一共n个厨师机器人都是按照顺序排列好的,每个厨师机器人都有一个编号ai,编号都是1-100之间的随机数,编号有可能是重复的,现在根据搜集到的信息,怀疑2.0版本很可能就是这里面编号最小和编号最大的那两个,但编号最小最大的可能不唯一,而最早出现的编号最小的厨师机器人,以及最后出现的编号最大的这两个厨师机器人应该就是2.0版本;请你帮助厂长快速找到这两个2.0版本的厨师机器人,并且准确说出他们所在的位置是从左到右的第几个。

输入格式

第一行,一个正整数n,表示接下来会给出n个厨师机器人的编号;(n<=1000000)

第二行,共有n个用空格隔开的整数,整数范围是1到100之间的,分别表示这一批厨师机器人的编号。(1<=ai<=100)

输出格式

第一行两个数据,表示这一批厨师机器人中编号最小厨师机器人的编号,以及它所在的位置,中间用空格隔开;

第二行两个数据,表示这一批厨师机器人中编号最大的厨师机器人的编号,以及它所在的位置,中间用空格隔开

输入输出样列

输入样例1:

5 
1 2 3 4 5
 

输出样例1:

1 1
5 5

输入样例2:

6  
3 1 1 50 60 60
 

输出样例2:

1 2
60 6
说明

【样例1说明】

从左到右机器人的编号依次是1,2,3,4,5,最小的编号是1,在1号位置上,最大的编号是5,在5号位置上

【样例2说明】

从左到右机器人的编号依次是3,1,1,50,60,60,最小的编号是1,编号1的有两个,最早出现的位置是2,最大的编号是60,编号60的有两个,最晚出现的是在位置6

【数据规模与约定】 

对于 100%的数据:1 ≤ n≤ 1000000。

 1 #include<iostream>
 2 using namespace std;
 3 
 4 int input(int* a) {
 5     int n;
 6     cin >> n;
 7     for (int i = 0; i < n; i++) {
 8         cin >> a[i];
 9     }
10     return n;
11 }
12 int findMin(int* a,int n) {
13     int min = a[0],flag=0;
14     for (int i = 0; i < n; i++) {
15         if (a[i] < min) {
16             min = a[i];
17             flag = i;
18         }
19     }
20     return flag;
21 }
22 int findMax(int* a,int n) {
23     int max = a[0], flag = 0;
24     for (int i = 0; i < n; i++) {
25         if (a[i] >= max) {
26             max = a[i];
27             flag = i;
28         }
29     }
30     return flag;
31 }
32 int main() {
33     int a[1000000];//必须按照题目大小,否则会报错
34     int n = input(a);
35     int max = findMax(a, n);
36     int min = findMin(a, n);
37     cout << a[min] <<" "<< min+1 << endl;
38     cout << a[max] <<" "<< max+1;
39 }

 

标签:K13414,int,机器人,样例,60,厨师,编号
来源: https://www.cnblogs.com/minisweet/p/15406146.html