首页 > 代码库 > AC日记——找最大数序列 openjudge 1.9 10
AC日记——找最大数序列 openjudge 1.9 10
10:找最大数序列
- 总时间限制:
- 1000ms
- 内存限制:
- 65536kB
- 描述
输入n行,每行不超过100个无符号整数,无符号数不超过4位。请输出最大整数以及最大整数所在的行号(行号从1开始)。如果该数据在多个行中出现,则按从小到大输出相应行号,行号之间以一个逗号分开。
- 输入
- 一行输入一个正整数n(n <= 30)。
之后的n行,每行包含不超过100个无符号整数,整数之间以一个逗号分开。 - 输出
- 第一行:最大整数;
第二行:最大整数所在的行编号,逗号间隔。 - 样例输入
61,3,5,23,6,8,1420,22,13,4,1623,12,17,222,6,10,9,3,622,21,20,8,1022,1,23,6,8,19,23
- 样例输出
231,3,6
思路:
模拟不解释;
来,上代码:
#include<map>#include<set>#include<queue>#include<stack>#include<cstdio>#include<string>#include<cstring>#include<iostream>#include<algorithm>using namespace std;int n,if_Z,num[31][100],now__=0,num_num[31],maxn=0;int ans_there[31],ans_num=0;char word;inline void read_int(int &now_001){ now_001=0,if_Z=1;word=getchar(); while(word<‘0‘||word>‘9‘) { if(word==‘-‘) if_Z=-1; word=getchar(); } while(word<=‘9‘&&word>=‘0‘) { now_001=now_001*10+(int)(word-‘0‘); word=getchar(); } now_001*=if_Z;}void read_all(){ int now_s=0; for(int now_002=1;now_002<=n;now_002++) { word=getchar(); now__=0; bool if_break=false;; while(word!=‘\n‘) { int now_num=0; while(word<‘0‘||word>‘9‘) { if(word==‘\n‘) { if_break=true; break; } word=getchar(); } if(if_break) break; while(word<=‘9‘&&word>=‘0‘) { now_num=now_num*10+(int)(word-‘0‘); word=getchar(); } num[now_002][++now__]=now_num; num_num[now_002]=now__; } }}void find(){ for(int i=1;i<=n;i++) { for(int j=1;j<=num_num[i];j++) { maxn=max(maxn,num[i][j]); } } for(int i=1;i<=n;i++) { for(int j=1;j<=num_num[i];j++) { if(maxn==num[i][j]) { ans_there[++ans_num]=i; break; } } }}void printf__(){ printf("%d\n%d",maxn,ans_there[1]); for(int i=2;i<=ans_num;i++) printf(",%d",ans_there[i]); printf("\n");}int main(){ read_int(n); read_all(); find(); printf__(); return 0;}
AC日记——找最大数序列 openjudge 1.9 10
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。