10:找最大数序列
程序员文章站
2022-04-03 22:35:35
...
- 总时间限制:
- 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 <iostream>
#include <string>
#include <vector>
using namespace std;
void SplitString(const string& s, vector<string>& v, const string& c)
{
string::size_type pos1, pos2;
pos2 = s.find(c);
pos1 = 0;
while(string::npos != pos2){
v.push_back(s.substr(pos1, pos2-pos1));
pos1 = pos2 + c.size();
pos2 = s.find(c, pos1);
}
if(pos1 != s.length())
v.push_back(s.substr(pos1));
}
int main()
{
string line;
int n, i, j, x, maxn=0, a[31];
cin >> n;
for (i=1; i<=n; i++){
cin >> line;
vector<string> v;
SplitString(line, v, ","); // 按逗号字符来分割
int max_line = 0;
for (j=0; j<v.size(); j++){
x = std::stoi(v[j]);
if (x > max_line) max_line = x; // 行最大值
if (x > maxn) maxn = x; // 最大值
}
a[i] = max_line;
}
cout << maxn << endl;
bool first = true;
for (i=1; i<=n; i++){
if (a[i] == maxn){
if (!first) cout << ",";
cout << i;
first = false;
}
}
cout << endl;
return 0;
}
上一篇: 13:整数去重
下一篇: matlab下对齿轮图片的参数提取
推荐阅读
-
c# 类实例序列化反序列化json文件 (原发布 csdn 2017-10-01 20:02:12)
-
孩子长不高怎么办? 找对方法你还能长高10厘米
-
做网站找什么样的公司好?从业10年深度剖析
-
win10 2009 家庭版永久激活秘钥/注册码/序列号 附图文激活教程
-
win10专业版永久激活秘钥/激活码/序列号推荐 附激活工具
-
2020.11最新win10 1909永久激活秘钥分享 win10序列号推荐
-
win10最新2021激活秘钥/序列号/产品秘钥分享 附激活工具
-
寒假每日一题Week2 day10 AcWing 1532. 找硬币(哈希表)
-
苹果iOS10上线防骚扰 腾讯凭最大数据库屡获推荐
-
win10专业版激活秘钥/激活码/序列号分享 附激活工具+教程