某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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。