360笔试,运动员第二题,80%,到底哪里错了,请教大佬们

哇,改了半天,也不知道哪里出错了,一直80%
贴下代码,希望能有人帮忙指出来,感激不尽
#include <iostream>
#include <vector>
#include <set>
using namespace std;

int n;
vector<int> athl, savevec;
multiset<int> spers;

void Init()
{
	athl.clear();
	savevec.clear();
	spers.clear();
	cin >> n;
	int t, i(n);
	while (i--)
	{
		cin >> t;
		athl.push_back(t);
	}
	return;
}

int FindK(multiset<int> &s, int x)
{
	s.insert(x);
	int cnt(0);
	for (auto it = s.begin(); it != s.end(); it++)
	{
		cnt++;
		if (*it == x)
		{
			auto tmp = it;
			++tmp;
			if (tmp != s.end() && *tmp == x)
				continue;
			return s.size()-cnt;
		}
	}
}

void Figure()
{
	int cnt;
	for (int i = 0; i < n; i++)
	{
		cnt = FindK(spers, athl[i]);
		savevec.push_back(cnt);
	}
	for (int i = 0; i < savevec.size()-1; i++)
		cout << savevec[i] << " ";
	cout << savevec[savevec.size()-1] << endl;
}

int main()
{
	Init();
	Figure();

	return 0;
}

全部评论
我用的map,也是一直80%
点赞 回复 分享
发布于 2017-08-26 21:06
肯定是超时啦!我的也是 图节省时间 直接暴力解了..
点赞 回复 分享
发布于 2017-08-26 21:07
我也是,估计是超时吧。
点赞 回复 分享
发布于 2017-08-26 21:07
+1
点赞 回复 分享
发布于 2017-08-26 21:08
暴力80%......
点赞 回复 分享
发布于 2017-08-26 21:08
我最后用归并写了,但没有时间交了
点赞 回复 分享
发布于 2017-08-26 21:09
超时了
点赞 回复 分享
发布于 2017-08-26 21:09
我也是百分之八十。
点赞 回复 分享
发布于 2017-08-26 21:09
超时了,我第一道整了40分钟,第二道一看剩下20分钟,直接暴力了,第三道题我连题都没读😭
点赞 回复 分享
发布于 2017-08-26 21:10
我也是map 一直超时 10% 醉了
点赞 回复 分享
发布于 2017-08-26 21:12

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务