10:找最大数序列

描述

输入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<iostream>
#include<algorithm>
#include<cstring>
#include<string>
#include<cstdio>
#include<cmath>
#include<set>
#include<map>
using namespace std;
#define ll long long
#define inf 0x3f3f3f3f
#define mem(a,b) memset(a,b,sizeof(a))
#define closeio std::ios::sync_with_stdio(false)

int a[35];

int main()
{
	int n,i,j,k,x,Max=-inf;
	string s;
	cin>>n;
	for(i=1;i<=n;i++)
	{
		cin>>s;
		x=0;
		k=0;
		for(j=0;j<s.length();j++)
		{
			if(s[j]==',')
			{
				a[i]=max(a[i],x);
				x=0;
			}
			else
				x=x*10+s[j]-'0';			
		}
		a[i]=max(a[i],x);
	}
	for(i=1;i<=n;i++)
		Max=max(Max,a[i]);
	int flag=0;
	cout<<Max<<endl;
	for(i=1;i<=n;i++)
	{
		if(a[i]==Max)
		{
			if(flag)
				cout<<",";
			flag=1;
			cout<<i;
		}
	}
	return 0;
}