#include <bits/stdc++.h>
using namespace std;
int binary_search(vector<int> times, int search, int low, int high) {
if (low > high) {
return high;
}
int mid = (low + high)/2;
if (times[mid] == search) return mid;
else if (times[mid] > search) return binary_search(times, search, low, mid-1);
else return binary_search(times, search, mid+1, high);
}
void returnLeader(vector<int> votes, vector<int> times, vector<int> instances) {
vector<int> tmp;
vector<int> cand_votes(votes.size(), 0);
vector<int> result;
int maxVotes = INT_MIN, maxVoteCandidate = votes[0];
for(int i=0;i<times.size();i++) {
cand_votes[votes[i]]++;
if (maxVotes <= cand_votes[votes[i]]) {
maxVotes = cand_votes[votes[i]];
maxVoteCandidate = votes[i];
}
tmp.push_back(maxVoteCandidate);
}
for(int i=0;i<instances.size();i++) {
int idx = binary_search(times, instances[i], 0, times.size()-1);
cout << idx << endl;
cout << tmp[idx] << " ";
}
return;
}
int main() {
// your code goes here
vector<int> votes = {0,1};
vector<int> times = {20,25};
vector<int> instances = {17};
returnLeader(votes, times, instances);
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgYmluYXJ5X3NlYXJjaCh2ZWN0b3I8aW50PiB0aW1lcywgaW50IHNlYXJjaCwgaW50IGxvdywgaW50IGhpZ2gpIHsKCWlmIChsb3cgPiBoaWdoKSB7CgkJcmV0dXJuIGhpZ2g7Cgl9CglpbnQgbWlkID0gKGxvdyArIGhpZ2gpLzI7CglpZiAodGltZXNbbWlkXSA9PSBzZWFyY2gpIHJldHVybiBtaWQ7CgllbHNlIGlmICh0aW1lc1ttaWRdID4gc2VhcmNoKSByZXR1cm4gYmluYXJ5X3NlYXJjaCh0aW1lcywgc2VhcmNoLCBsb3csIG1pZC0xKTsKCWVsc2UgcmV0dXJuIGJpbmFyeV9zZWFyY2godGltZXMsIHNlYXJjaCwgbWlkKzEsIGhpZ2gpOwp9Cgp2b2lkIHJldHVybkxlYWRlcih2ZWN0b3I8aW50PiB2b3RlcywgdmVjdG9yPGludD4gdGltZXMsIHZlY3RvcjxpbnQ+IGluc3RhbmNlcykgewoJdmVjdG9yPGludD4gdG1wOwoJdmVjdG9yPGludD4gY2FuZF92b3Rlcyh2b3Rlcy5zaXplKCksIDApOwoJdmVjdG9yPGludD4gcmVzdWx0OwoJaW50IG1heFZvdGVzID0gSU5UX01JTiwgbWF4Vm90ZUNhbmRpZGF0ZSA9IHZvdGVzWzBdOwoJZm9yKGludCBpPTA7aTx0aW1lcy5zaXplKCk7aSsrKSB7CgkJY2FuZF92b3Rlc1t2b3Rlc1tpXV0rKzsKCQlpZiAobWF4Vm90ZXMgPD0gY2FuZF92b3Rlc1t2b3Rlc1tpXV0pIHsKCQkJbWF4Vm90ZXMgPSBjYW5kX3ZvdGVzW3ZvdGVzW2ldXTsKCQkJbWF4Vm90ZUNhbmRpZGF0ZSA9IHZvdGVzW2ldOwoJCX0KCQl0bXAucHVzaF9iYWNrKG1heFZvdGVDYW5kaWRhdGUpOwoJfQoJZm9yKGludCBpPTA7aTxpbnN0YW5jZXMuc2l6ZSgpO2krKykgewoJCWludCBpZHggPSBiaW5hcnlfc2VhcmNoKHRpbWVzLCBpbnN0YW5jZXNbaV0sIDAsIHRpbWVzLnNpemUoKS0xKTsKCQljb3V0IDw8IGlkeCA8PCBlbmRsOwoJCWNvdXQgPDwgdG1wW2lkeF0gPDwgIiAiOwoJfQoJcmV0dXJuOwp9CgppbnQgbWFpbigpIHsKCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCXZlY3RvcjxpbnQ+IHZvdGVzID0gezAsMX07Cgl2ZWN0b3I8aW50PiB0aW1lcyA9IHsyMCwyNX07Cgl2ZWN0b3I8aW50PiBpbnN0YW5jZXMgPSB7MTd9OwoJcmV0dXJuTGVhZGVyKHZvdGVzLCB0aW1lcywgaW5zdGFuY2VzKTsKCXJldHVybiAwOwp9