2015-06-18 2 views
0

http://community.topcoder.com/stat?c=problem_statement&pm=13112&rd=15852 http://apps.topcoder.com/wiki/display/tc/SRM+619TopCoder алгоритм SRM619 div2

Я не знаю, какие мои строки кода неверны. И я не мог понять. Вопрос в том, почему мой код не работает, значит, я не прошел тест №5.

5)

{-1, 0, 0, 1, 1, 3, 0, 2, 0, 5, 2, 5, 5, 6, 1, 2, 11, 12, 10, 4, 7, 16, 10, 9, 12, 18, 15, 23, 20, 7, 4}

{4, 6, 4, 7, 7, 1, 2, 8, 1, 7, 2 , 4, 2, 9, 11, 1, 10, 11, 4, 6, 11, 7, 2, 8, 9, 9, 10, 10, 9, 8, 8}

Возвращает: 27

Заранее спасибо.

public class GoodCompanyDivTwo { 
    public int countGood(int[] superior, int[] workType) { 
     int res = 1; 
     for (int i = 1; i < superior.length; i++) { 
      if (workType[superior[i]] != workType[i]) { 
       res++; 
      } 
     } 
     return res; 
    } 
} 
+1

В чем вопрос? Подсказка - одна из причин отсутствия темы: 'Вопросы, требующие помощи по отладке (« почему этот код не работает? ») Должны включать в себя желаемое поведение, конкретную проблему или ошибку и кратчайший код, необходимый для его воспроизведения в сам вопрос. Вопросы без четкой постановки проблемы не полезны для других читателей. – amit

ответ

0

Я понимаю. Я проверял только тип работы начальника и тип работы каждого сотрудника. Это было неправильно. Я должен был проверить также между типом работы каждого сотрудника и типом работы другого сотрудника. В заявлении о проблеме предполагается, что «разнообразный» означает, что тип работы всех сотрудников, включая начальника, должен быть уникальным.

public int countGood(int[] superior, int[] workType) { 
    int res = 0; 
    for (int i = 0; i < superior.length; i++) { 
     int[] tmp = new int[101]; 
     tmp[workType[i]]++; 

     for (int j = 0; j < superior.length; j++) { 
      if (i == j) continue; 

      if (superior[j] == i) { 
       tmp[workType[j]]++; 
      } 
     } 
     boolean diverse = true; 
     for (int j = 0; j < 101; j++) { 
      if (tmp[j] > 1) { 
       diverse = false; 
       break; 
      } 
     } 
     if (diverse) res++; 
    } 
    return res; 
} 
Смежные вопросы