Algorithm


Problem Name: beecrowd | 2670

Problem Link: https://www.beecrowd.com.br/judge/en/problems/view/2670

Máquina de Café

 

By Maratona de Programção da SBC, ACM ICPC 2017 BR Brazil

Timelimit: 1

O novo prédio da Sociedade Brasileira de Computação (SBC) possui 3 andares. Em determinadas épocas do ano, os funcionários da SBC bebem muito café. Por conta disso, a presidência da SBC decidiu presentear os funcionários com uma nova máquina de expresso. Esta máquina deve ser instalada em um dos 3 andares, mas a instalação deve ser feita de forma que as pessoas não percam muito tempo subindo e descendo escadas.

Cada funcionário da SBC bebe 1 café expresso por dia. Ele precisa ir do andar onde trabalha até o andar onde está a máquina e voltar para seu posto de trabalho. Todo funcionário leva 1 minuto para subir ou descer um andar. Como a SBC se importa muito com a eficiência, ela quer posicionar a máquina de forma a minimizar o tempo total gasto subindo e descendo escadas.

Sua tarefa é ajudar a diretoria a posicionar a máquina de forma a minimizar o tempo total gasto pelos funcionários subindo e descendo escadas.

 

Input

 

A entrada consiste em 3 números, A1 , A2 , A3 (0 ≤ A1 , A2 , A3 ≤ 1000), um por linha, onde Ai representa o número de pessoas que trabalham no i-ésimo andar.

 

Output

 

Seu programa deve imprimir uma única linha, contendo o número total de minutos a serem gastos com o melhor posicionamento possível da máquina.

 

 

 

Input Samples Output Samples

10

20

30

80

 

 

 

10

30

20

60

 

 

 

30

10

20

100

Code Examples

#1 Code Example with C Programming

Code - C Programming


#include <stdio.h>

int main(void)
{
    int i, j, a, b, c, temp, x[3];

    scanf("%i %i %i", &a, &b, &c);

    x[0]=b*2+c*4;
    x[1]=a*2+c*2;
    x[2]=a*4+b*2;

    for (i=0; i  <  3-1; ++i)
    {
        for (j=i+1; j < 3; ++j)
        {
            if (x[j] < x[i])
            {
                temp=x[i];
                x[i]=x[j];
                x[j]=temp;
            }
        }
    }

    printf("%i\n", x[0]);

    return 0;
}

Copy The Code & Try With Live Editor

Input

x
+
cmd
10 20 30

Output

x
+
cmd
80

#2 Code Example with C++ Programming

Code - C++ Programming


#include <iostream>
using namespace std;

int main(){
    int a1,a2,a3,m1,m2,m3; 
    cin >> a1 >> a2 >> a3;
    m1 = a2*2 + a3*4;
    m2 = a1*2 + a3*2;
    m3 = a1*4 + a2*2;
    //cout << m1 << m2 << m3 << endl;
    if (m1  < = m2 and m1 <= m3) {
        cout << m1 << endl;
    }
    else if (m2  < = m1 and m2 <= m3) {
        cout << m2 << endl;
    }else if (m3  < = m1 and m3 <= m2) {
        cout << m3 << endl;
    }

    return 0;
}

Copy The Code & Try With Live Editor

Input

x
+
cmd
10 20 30

#3 Code Example with Java Programming

Code - Java Programming


import java.util.Scanner;
import java.util.Locale;

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		sc.useLocale(Locale.ENGLISH);
		Locale.setDefault(new Locale("en", "US"));

		int a1 = sc.nextInt();
		int a2 = sc.nextInt();
		int a3 = sc.nextInt();
		int resA1 = (a2*1*2)+(a3*2*2);
		int resA2 = (a1*1*2)+(a3*1*2);
		int resA3 = (a1*2*2)+(a2*1*2);
		int aux=resA1;
		if(resA2 < aux) aux=resA2;
		if(resA3  <  aux) aux=resA3;
		System.out.println(aux);
		sc.close(>;
	}
}
Copy The Code & Try With Live Editor

Input

x
+
cmd
10 20 30

#4 Code Example with Javascript Programming

Code - Javascript Programming


const { readFileSync } = require("node:fs")
const [A, B, C] = readFileSync("/dev/stdin", "utf8")
	.split("\n", 3)
	.map((value) => Number.parseInt(value, 10))

console.log(
	Math.min(
		B * 2 + C * 4,
		A * 2 + C * 2,
		A * 4 + B * 2
	)
)

Copy The Code & Try With Live Editor
Advertisements

Demonstration


Previous
#2663 Beecrowd Online Judge Solution 2663 Fase Solution in C, C++, Java, Js and Python
Next
#2679 Beecrowd Online Judge Solution 2679 Even Successor Solution in C, C++, Java, Js and Python