求教,下面的代码运行样例是正确的,但是放上去跑,显示超时。应该怎么改呢?大佬们求指教。
#include<iostream>
#include<map>
#include<vector>
#include<algorithm>
using namespace std;
struct node{
int index;//投票人编号
int workId;//作品编号
};
node people[100001];
map<int,vector<int> > work;//作品编号以及对应的投票的人的编号
int n;//表示投票人数
int m;//表示作品数
int q;//表示事件数
int cnt;//参与了投票的人数
int winner;
//输出投票最多的作品编号
void maxWork(){
int ans=0;
vector<int> wId;
for(int i=1;i<=m;i++){
int temp=work[i].size();
ans=max(ans,temp);
}
if(ans>=1){
for(int i=1;i<=m;i++){
if(work[i].size()==ans){
wId.push_back(i);
}
}
winner=wId[0];
for(int i=0;i<wId.size();i++){
winner=min(winner,wId[i]);
}
}
else{
winner=0;