Тема: Алготестер. Їдальня. С++ і Java
https://www.algotester.com/uk/ArchivePr … File/40746
Доброго дня. Зробив задачу на С++ і вирішив повторити розв'язок на Java. Програми ідентичні, але відповіді виводять різні. Допоможіть знайти помилки. 
#include <iostream>
using namespace std;
main ()
{
  int n;
  cin >> n;
  string name[n];
  int weight[n];
  for (int i = 0; i < n; i++){
      cin >> name[i];
      cin >> weight[i];
    }
  int k, S = 0;
  for (int i = 0; i < n; i++){
      if (name[i] != "*") k = weight[i];
      for (int j = i + 1; j < n; j++){
      if (name[i] == name[j] && (name[i] != "*"))
        {
          name[j] = "*";
          if (weight[j] > k)    k = weight[j];
        }
    }
      if (name[i] != "*")    S += k;
    }
  cout << S;
  return 0;
}package com.company;
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        int n;
        Scanner in = new Scanner(System.in);
        n = in.nextInt();
        String name[] = new String[n];
        int weight[] = new int[n];
        for (int i = 0; i < n; i++) {
            name[i] = in.next();
            weight[i] = in.nextInt();
        }
        int k=0,S=0;
        for (int i=0;i<n;i++){
            if(name[i] != "*") k = weight[i];
            for (int j=i+1;j<n;j++){
                if((name[i]==name[j]) && (name[i]!="*")){
                    name[j] = "*";
                    if(weight[j]>k) k = weight[j];
                }
            }
            if (name[i]!="*") S+=k;
        }
    System.out.println(S);
    }
}Наприклад, якщо ввести 3 p 4 p 4 p 4, то перша програма виведе 4, а друга 12.