Eine Frage pro Tag (Bonbons verteilen)

Solo und Koko sind zwei Brüder. Ihre Mutter gab ihnen eine große Tüte Süßigkeiten. Jedes Bonbonstück hat sein eigenes Gewicht. Jetzt wollen sie den Zucker in zwei Haufen aufteilen. Natürlich fiel die Aufgabe, den Zucker aufzuteilen, dem ältesten Bruder Solo zu, aber Koko verlangte, dass das Gesamtgewicht des von den beiden Personen erhaltenen Zuckers „gleich“ sein müsse (nach Kokos Logik), sonst würde er weinen. Leider ist Koko noch sehr jung, und er kann nur zwei Zahlen in Binärzahlen umwandeln, bevor er sie addiert, und er vergisst immer, sie zu tragen.

Wenn beispielsweise 12 (1100) zu 5 (101) addiert wird:

1100

+ 0101

————

1001

Das von koko erhaltene Berechnungsergebnis ist also 9 (1001).

Es gibt auch einige Beispiele:

5 + 4 = 1

7 + 9 = 14

50 + 10 = 56

Jetzt ist Solo sehr gierig. Er möchte das Gesamtgewicht der Süßigkeiten, die er bekommen kann, maximieren, ohne Koko zum Weinen zu bringen.

Beschreibung eingeben

Die erste Eingabezeile ist eine Ganzzahl N (2 ≤ N ≤ 15), die angibt, wie viele Zuckerstücke sich in der Tüte befinden.

Die zweite Zeile enthält N ganze Zahlen Weighti (1 ≤ Weighti ≤ 10^6), getrennt durch Leerzeichen, die das Gewicht des i-ten Stücks Zucker angeben.

Ausgabebeschreibung

Wenn Sie verhindern können, dass Koko weint, geben Sie das Gesamtgewicht an Zucker aus, das Solo erhalten kann, andernfalls geben Sie „NEIN“ aus.

Probe

eingeben:

3
3 5 6

Ausgabe:

11

Code:

package com.ceshi;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int n = scan.nextInt();
        int[] array = new int[n];
        for (int i = 0; i < n; i++)
            array[i] = scan.nextInt();
        int s = 0, mi = 1000010, sum = 0;
        for (int i = 0; i < n; i++) {
            int t = array[i];
            s ^= t; 
            mi = Math.min(mi, t); 
            sum += t; 
        }
        if (s != 0) {
            System.out.println("NO"); // 无解
        } else {
            System.out.println(sum - mi); // 除了最小值的其余数的和
        }
    }
}

Supongo que te gusta

Origin blog.csdn.net/a154555/article/details/129734169
Recomendado
Clasificación