1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
| #include <string>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
vector<int> solution(vector<int> answers) {
vector<int> answer;
vector<int> man2(10000,2);
vector<int> man1(10000);
vector<int> man3(10000);
vector<int> man2_R={1,3,4,5};
vector<int> man3_R={3,1,2,4,5};
vector<pair<int,int>> score(3);
score[0].second=1;
score[1].second=2;
score[2].second=3;
for (int i=0;i<1000;i++){
for(int j=0;j<5;j++){
man1.insert(man1.begin()+i*5+j,j+1);
man1.insert(man1.begin()+5000+i*5+j,j+1);
man2.insert(man2.begin()+(i*5+j)*2+1,man2_R[(i*5+j) % 4]);
man3.insert(man3.begin()+(i*5+j)*2,man3_R[(i*5+j) % 5]);
man3.insert(man3.begin()+(i*5+j)*2+1,man3_R[(i*5+j) % 5]);
}
}
for (int i=0;i<answers.size();i++){
if(man1[i]==answers[i]) score[0].first++;
if(man2[i]==answers[i]) score[1].first++;
if(man3[i]==answers[i]) score[2].first++;
}
stable_sort(score.begin(), score.end(),greater<>());
answer.push_back((*score.begin()).second);
for (int i=1;i<3;i++){
if ((score[i]).first==(score[0]).first)
answer.push_back((score[i].second));
}
sort(answer.begin(),answer.end());
return answer;
}
|