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!=‘\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;
}
时间: 2024-11-05 09:59:44

AC日记——找最大数序列 openjudge 1.9 10的相关文章

AC日记——大整数加法 openjudge 1.6 10

10:大整数加法 总时间限制:  1000ms 内存限制:  65536kB 描述 求两个不超过200位的非负整数的和. 输入 有两行,每行是一个不超过200位的非负整数,可能有多余的前导0. 输出 一行,即相加后的结果.结果里不能有多余的前导0,即如果结果是342,那么就不能输出为0342. 样例输入 22222222222222222222 33333333333333333333 样例输出 55555555555555555555 来源 程序设计实习2007 思路: 模拟: 来,上代码:

AC日记——单词的长度 openjudge 1.7 24

24:单词的长度 总时间限制:  1000ms 内存限制:  65536kB 描述 输入一行单词序列,相邻单词之间由1个或多个空格间隔,请对应地计算各个单词的长度. 注意,如果有标点符号(如连字符,逗号),标点符号算作与之相连的词的一部分.没有被空格间开的符号串,都算作单词. 输入 一行单词序列,最少1个单词,最多300个单词,单词之间用至少1个空格间隔.单词序列总长度不超过1000. 输出 依次输出对应单词的长度,之间以逗号间隔. 样例输入 She was born in 1990-01-02

AC日记——有趣的跳跃 openjudge 1.6 07

07:有趣的跳跃 总时间限制:  1000ms 内存限制:  65536kB 描述 一个长度为n(n>0)的序列中存在“有趣的跳跃”当前仅当相邻元素的差的绝对值经过排序后正好是从1到(n-1).例如,1 4 2 3存在“有趣的跳跃”,因为差的绝对值分别为3,2,1.当然,任何只包含单个元素的序列一定存在“有趣的跳跃”.你需要写一个程序判定给定序列是否存在“有趣的跳跃”. 输入 一行,第一个数是n(0 < n < 3000),为序列长度,接下来有n个整数,依次为序列中各元素,各元素的绝对值

AC日记——矩阵交换行 openjudge 1.8 01

01:矩阵交换行 总时间限制:  1000ms 内存限制:  65536kB 描述 给定一个5*5的矩阵(数学上,一个r×c的矩阵是一个由r行c列元素排列成的矩形阵列),将第n行和第m行交换,输出交换后的结果. 输入 输入共6行,前5行为矩阵的每一行元素,元素与元素之间以一个空格分开.第6行包含两个整数m.n,以一个空格分开.(1 <= m,n <= 5) 输出 输出交换之后的矩阵,矩阵的每一行元素占一行,元素之间以一个空格分开. 样例输入 1 2 2 1 2 5 6 7 8 3 9 3 0

AC日记——验证字串 openjudge 1.7 18

18:验证子串 总时间限制:  1000ms 内存限制:   65536kB 描述 输入两个字符串,验证其中一个串是否为另一个串的子串. 输入 输入两个字符串, 每个字符串占一行,长度不超过200且不含空格. 输出 若第一个串s1是第二个串s2的子串,则输出(s1) is substring of (s2) 否则,若第二个串s2是第一个串s1的子串,输出(s2) is substring of (s1) 否则,输出 No substring. 样例输入 abc dddncabca 样例输出 ab

AC日记——回文子串 openjudge 1.7 34

34:回文子串 总时间限制:  1000ms 内存限制:  65536kB 描述 给定一个字符串,输出所有长度至少为2的回文子串. 回文子串即从左往右输出和从右往左输出结果是一样的字符串,比如:abba,cccdeedccc都是回文字符串. 输入 一个字符串,由字母或数字组成.长度500以内. 输出 输出所有的回文子串,每个子串一行.子串长度小的优先输出,若长度相等,则出现位置靠左的优先输出. 样例输入 123321125775165561 样例输出 33 11 77 55 2332 2112

AC日记——删除单词后缀 openjudge 1.7 20

20:删除单词后缀 总时间限制:  1000ms 内存限制:  65536kB 描述 给定一个单词,如果该单词以er.ly或者ing后缀结尾, 则删除该后缀(题目保证删除后缀后的单词长度不为0), 否则不进行任何操作. 输入 输入一行,包含一个单词(单词中间没有空格,每个单词最大长度为32). 输出 输出按照题目要求处理后的单词. 样例输入 referer 样例输出 refer 来源 北京大学医学部计算概论08期末考试题 思路: 得了吧,水题一个: 来,上代码: #include<cstdio>

AC日记——字符串判等 openjudge 1.7 17

17:字符串判等 总时间限制:  1000ms 内存限制:   65536kB 描述 判断两个由大小写字母和空格组成的字符串在忽略大小写,且忽略空格后是否相等. 输入 两行,每行包含一个字符串. 输出 若两个字符串相等,输出YES,否则输出NO. 样例输入 a A bb BB ccc CCC Aa BBbb CCCccc 样例输出 YES 思路: 大模拟: 来,上代码: #include<cstdio> #include<string> #include<cstring>

Ac日记——大整数减法 openjudge 1.6 11

11:大整数减法 总时间限制:  1000ms 内存限制:  65536kB 描述 求两个大的正整数相减的差. 输入 共2行,第1行是被减数a,第2行是减数b(a > b).每个大整数不超过200位,不会有多余的前导零. 输出 一行,即所求的差. 样例输入 9999999999999999999999999999999999999 9999999999999 样例输出 9999999999999999999999990000000000000 思路: 模拟: 来,上代码: #include<s