首页 > 代码库 > 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