Тема: Алготестер. Їдальня. С++ і 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.