Asanaは、同僚間のタスク割り当てを合理化するために設計されたスマートワークロード機能を検討しています。新しく作成されたタスクは、最も軽い作業負荷でチームメンバーに自動的に割り当てられます。以下の情報が知られているi番目の人のために:smartベクトルのプロパティに基づいて割り当て
namesi - their name, a string containing only uppercase and lowercase letters;
statusesi - their vacation indicator status, which is true if the person is on a vacation, or false otherwise;
projectsi - the number of projects they are currently involved in;
tasksi - the number of tasks assigned to the report.
人の休暇の指標値がtrueに設定されている場合、これは、彼らが休暇にあり、新しいタスクを割り当てることができないことを意味します。逆に、バケーション・インジケータ値がfalseの場合、タスク割当てを受け取るために開かれていることを意味します。
アサナはチームのメンバーを在庫状況に応じて選別します。これらの数値が等しいが、AがBよりも割り当てられたプロジェクトの数が少ない場合、人物Aは人物Bよりも可用性が高くなります。言い換えれば、人物Aは人よりも可用性が高いB(タスク、プロジェクト)のペアがBの同じペアよりも小さい場合はBを選択します。
あなたのタスクは、可用性の最も高い人の名前を見つけることです。そのような人がちょうど1人いることが保証されています。ステータス=偽、プロジェクト= 2とタスク= 16で、
"ジョン";:
は例
For names = ["John", "Martin"], statuses = [false, false],
projects = [2, 1] and tasks = [16, 5],
the output should be
smartAssigning(names, statuses, projects, tasks) = "Martin".
引数は2人のチームメンバーに関する情報を表します ここで、JohnとMartinの休暇インジケータはどちらも真であるため、両方とも新しい割り当てに対応しています。マーティンは5つのタスクしか割り当てられませんが、ジョンは6が割り当てられます。
For names = ["John", "Martin"], statuses = [false, true],
projects = [2, 1] and tasks = [6, 5],
the output should be
smartAssigning(names, statuses, projects, tasks) = "John".
引数は、次のチームメンバーのためにスタンド:
状態=偽、プロジェクト= 2とタスク= 1で "ジョン"、。 status = true、projects = 1、およびtasks = 5の場合、 "Martin"は "Martin"です。 休暇インジケータがtrueのため、この例では新しいタスクを割り当てることはできません。したがって、「John」は最高の可用性を備えています。以下について
For names = ["John", "Martin"], statuses = [false, false],
projects = [1, 2] and tasks = [6, 6],
the output should be
smartAssigning(names, statuses, projects, tasks) = "John".
が与えられる。
"ジョン"、ステータス=偽、プロジェクト= 1とタスク= 6を有します。 status = false、projects = 2、およびtasks = 6の「Martin」休暇インジケータはいずれもfalseであり、それぞれ割り当てられるタスクの数は6です。ただしJohnは1つのプロジェクトMartinは2に関わっているので、Johnは最高の可用性を持っています。
これは私のコードですが、試験に合格しませんでした。私の問題は何ですか
std::string smartAssigning(std::vector<std::string> names, std::vector<bool> statuses, std::vector<int> projects, std::vector<int> tasks) {
int indicator=0;
int num_member=names.size();
int count=0;
for (int i=0;i<num_member;i++) {
if(statuses[i]==false){
count++;
indicator=i;
}
else {
names.erase(names.begin() + i);
projects.erase(projects.begin() + i);
tasks.erase(tasks.begin() + i);
}
}
if(count==1)
return names[indicator] ;
num_member=names.size();
indicator=0;
int count_min=1;
int min=tasks[0];
for (int i=1;i<num_member;i++) {
if(tasks[i]==min) count_min++;
else if(tasks[i]<min){
min=tasks[i];
indicator=i;
}
else {
names.erase(names.begin() + i);
projects.erase(projects.begin() + i);
tasks.erase(tasks.begin() + i);
}
}
if(count_min==1)
return names[indicator];
num_member=names.size();
indicator=0;
count_min=1;
min=projects[0];
for (int i=1;i<num_member;i++) {
if(projects[i]==min) count_min++;
else if(projects[i]<min){
min=projects[i];
indicator=i;
}
}
if (count_min==1) return names[indicator];
else return "";
}
実行時に問題が発生しましたか?あなたはそれがあるはずのものと比較されている行動は何ですか?実際には – Hayt
。私はどちらが誤りであるか分からない。私はサンプルテストに合格しましたが、隠れたテストでは失敗します。したがって、私は失敗した入力を知らない。 – user3051460
'begin()+ i'はベクトルが縮小し、' i'がどんなものになるか考えてみよう。 – molbdnilo