AC日记——找最大数序列 openjudge 1.9 10

10:找最大数序列

总时间限制: 
1000ms
 
内存限制: 
65536kB
描述

输入n行,每行不超过100个无符号整数,无符号数不超过4位。请输出最大整数以及最大整数所在的行号(行号从1开始)。如果该数据在多个行中出现,则按从小到大输出相应行号,行号之间以一个逗号分开。

输入
一行输入一个正整数n(n <= 30)。
之后的n行,每行包含不超过100个无符号整数,整数之间以一个逗号分开。
输出
第一行:最大整数;
第二行:最大整数所在的行编号,逗号间隔。
样例输入
6
1,3,5,23,6,8,14
20,22,13,4,16
23,12,17,22
2,6,10,9,3,6
22,21,20,8,10
22,1,23,6,8,19,23
样例输出
23
1,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!='
')
        {
            int now_num=0;
            while(word<'0'||word>'9')
            {
                if(word=='
')
                {
                    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
%d",maxn,ans_there[1]);
    for(int i=2;i<=ans_num;i++) printf(",%d",ans_there[i]);
    printf("
");
}

int main()
{
    read_int(n);
    read_all();
    find();
    printf__();
    return 0;
}
原文地址:https://www.cnblogs.com/IUUUUUUUskyyy/p/6127965.html