C++ 在线编程竞赛的输入
在许多在线编程竞赛(例如)中,输入有2-5行。第一行主要由测试用例和其他包含程序数据的行组成。 例如: 输入:输入的第一行包含一个整数T,表示 测试用例的数量。然后,T测试用例随之出现。每行的第一行 测试用例包含三个空格分隔的整数N、K和Q 在问题中描述。第二行包含一个字符串S 长度N。接下来的Q行描述查询,其中第i行 其中包含两个空格分隔的整数Li和Ri。 182 30111000014245 八, 现在假设在我的代码中,我将第一行的输入作为C++ 在线编程竞赛的输入,c++,C++,在许多在线编程竞赛(例如)中,输入有2-5行。第一行主要由测试用例和其他包含程序数据的行组成。 例如: 输入:输入的第一行包含一个整数T,表示 测试用例的数量。然后,T测试用例随之出现。每行的第一行 测试用例包含三个空格分隔的整数N、K和Q 在问题中描述。第二行包含一个字符串S 长度N。接下来的Q行描述查询,其中第i行 其中包含两个空格分隔的整数Li和Ri。 182 30111000014245 八, 现在假设在我的代码中,我将第一行的输入作为 cin>>no_of_case;
cin>>no_of_case;
我运行一个for循环,循环次数是我从第二行获取输入时遇到的问题的数量
但正如您在input语句中看到的,第2行有3个变量输入
如何在3个不同变量中获取第二行的输入?
我发现的一种方法是将输入放入数组中,解析数据中的空格,并将输入分离为不同的变量。但这对于长时间的输入来说太长了。以下是您可能要寻找的算法: 使用
getline(cin,无大小写)
读取所有输入,然后使用空格(“”)作为分隔符拆分输入
希望这能让你走上正轨
注意:如果计划将输入用作算术数字,则可能需要将这些字符串转换回整数
编辑:要将字符串数转换回整数,可以使用std::stoi()
函数。在本例中,请这样使用它:std::stoi(无任何大小写)
一定要确保有#include
和#include
,如果使用名称空间,则不需要std::
前缀。简单修复:
cin>>N>>K>>Q;
这应该是可行的…,将行放在and中(在and的帮助下)放在a中。如果您不知道如何做,那么现在就担心在线竞争可能还为时过早。。。?也许能找到一两本教程,甚至一本书。如果您需要这里的帮助,您应该发布您尝试过的代码的确切输入和输出(或编译器错误,如果您没有运行它),以及您不理解的失败原因代码>?@Pushkar不,它读取三个以空格分隔的内容。@Pushkar,这就是我面临的问题,我如何将它们转换回Integers@Pushkar我已经编辑了我的答案来展示如何将字符串转换回整数。。。