Skip to Content

Elections

Editorial oficial (C++) 

Explicación

Complejidad temporal: O(1)\mathcal{O}(1)

Este problema nos pide hallar el número que hay que sumarle a otro número para que sea estrictamente mayor que otros 2 números. En otras palabras, si a,b,ca,b,c son los valores de los 33 números dados y nn es el número que se va a sumar, obtenemos la siguiente ecuación:

a+n=max(b,c)+1a+n=\max(b,c)+1

Al resolverla, obtenemos n=max(b,x)+1an=max(b,x)+1-a. Con esto, podemos calcular nn para cada uno de aa, bb y cc. Sin embargo, es importante notar que si n<0n<0, entonces debemos imprimir 00, ya que el valor a sumar no puede ser negativo.

Implementación

#include <bits/stdc++.h> using namespace std; int main() { int t; cin >> t; for (int tc = 0; tc < t; tc++) { int a, b, c; cin >> a >> b >> c; /* * Calculamos el valor que hay que superar * para que esa persona gane la elección. * Por ejemplo, max(b,c) da la cantidad que * a debe superar para ganar. */ int maxa = max(b, c); int maxb = max(a, c); int maxc = max(a, b); cout << max(0, maxa + 1 - a) << " " << max(0, maxb + 1 - b) << " " << max(0, maxc + 1 - c) << endl; } }
import java.io.*; import java.util.*; public class Election { public static void main(String[] args) throws IOException { Kattio io = new Kattio(); int t = io.nextInt(); for (int tc = 0; tc < t; tc++) { int a = io.nextInt(); int b = io.nextInt(); int c = io.nextInt(); /* * Calculamos el valor que hay que superar * para que esa persona gane la elección. * Por ejemplo, max(b,c) da la cantidad que * a debe superar para ganar. */ int maxa = Math.max(b, c); int maxb = Math.max(a, c); int maxc = Math.max(a, b); System.out.println(Math.max(0, maxa + 1 - a) + " " + Math.max(0, maxb + 1 - b) + " " + Math.max(0, maxc + 1 - c)); } io.close(); } // CodeSnip{Kattio} }
for _ in range(int(input())): a, b, c = map(int, input().split()) maxa = max(b, c) maxb = max(a, c) maxc = max(a, b) print(max(0, maxa + 1 - a), max(0, maxb + 1 - b), max(0, maxc + 1 - c))