ʕ·͡ˑ·ཻ ʕ•̫͡• ʔ•̫͡•ཻʕ•̫͡•ʔ•͓͡•ʔ

题目描述

10:找最大数序列
  • 总时间限制:

    1000ms

  • 内存限制:

    65536kB

  • 描述

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

  • 输入

    一行输入一个正整数n(n <= 30)。 之后的n行,每行包含不超过100个无符号整数,整数之间以一个逗号分开。

  • 输出

    第一行:最大整数;

    第二行:最大整数所在的行编号,逗号间隔。

  • 样例输入

    1
    2
    3
    4
    5
    6
    7
    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
  • 样例输出

    1
    2
    23
    1,3,6

思路:

注意一下输入格式。

AC代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include<bits/stdc++.h>
using namespace std;

const int N = 10000;

int a[N];
int b[N];
int d[N];

int main(){
int n;
cin>>n;
char c;
for(int i=0;i<n;i++){
memset(a,0,sizeof(a));
int j=0;
do{
cin>>a[j++];
}while(getchar()!='\n');
sort(a,a+j);
b[i] = a[j-1];
}
int max = -1;
for(int i=0;i<n;i++){
if(b[i]>max) max = b[i];
}
cout<<max<<endl;
int k=0;
for(int i=0;i<n;i++){
if(b[i]==max) d[k++] = i+1;
}
cout<<d[0];
for(int i=1;i<k;i++){
cout<<","<<d[i];
}
cout<<endl;
return 0;
}