问题陈述
珍爱钻石!
事实上,现在罕见的是收集钻石。稀世珍爱最稀有、最闪亮的钻石也就不足为奇了,所以她总是关心她的钻石有多闪亮。
稀有有关于她的钻石的问题,她想让你回答,因为她显然不想自己回答。
起初,稀有没有钻石。但是,在她寻找钻石的过程中,可能会发生以下情况:
罕见的发现一些钻石具有光泽S.稀有奇怪的是最闪亮的钻石有多亮,有多少钻石是她所有的钻石中最闪亮的。如果没有钻石,你必须输出失败。你决定帮助稀有的人完成这项任务。对于第二种类型的询问,回答她,最亮的钻石有多亮,最亮的钻石有多少。
输入格式
第一行包含一个整数Q,即查询数。
下一个Q行每个开头都有一个单词,它决定查询的类型:
如果行以ADD开头,则后面跟着一个整数S,即刚找到的钻石的光泽。如果以询问开头,稀有性要求最闪亮的钻石和最闪亮的钻石的数量。输出格式
对于每个ASK查询,在一行上输出两个整数,最大钻石的亮度和具有这种光泽的钻石数量。
如果当她提出询问时没有钻石,那么输出就会在一行中失败。
约束
子任务1(13分) 1≤Q≤106 1≤S≤109
子任务2(30分)1≤Q≤100万
1≤S≤109
子任务3(27分) 1≤Q≤106 1≤S≤10亿
子任务4(30分)1≤Q≤100万1≤S≤10亿
不完全码
得分: 70.00。裁决:超过时限(TLE)
#include <iostream>
using namespace std;
int main()
{
long long int numberofqueries, numberofqueriesdone, shininess;
cin >> numberofqueries;
long long int shiniestdiamond = 0, numberofsuchdiamonds = 0;
string questiontype;
while (numberofqueriesdone < numberofqueries)
{cin >> questiontype;
if (questiontype == "ASK")
{
if (shiniestdiamond == 0)
cout << "fail" << endl;
else
{cout << shiniestdiamond << " " << numberofsuchdiamonds << endl;}
}
if (questiontype == "ADD")
{
cin >> shininess;
if (shininess == shiniestdiamond)
numberofsuchdiamonds += 1;
else if(shininess > shiniestdiamond)
{shiniestdiamond = shininess;
numberofsuchdiamonds = 1;}
}
numberofqueriesdone += 1;
}
}怎么了,
我看不出我的代码有什么问题,会给出TLE的结论。我相信它最多能在10米的时间内运行。
发布于 2015-11-05 11:21:52
您有未定义的行为,永远不会初始化numberofqueriesdone。
https://stackoverflow.com/questions/33543166
复制相似问题