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 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
Output
#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
#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
#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