Submeter | Todas submissőes | Melhores | Voltar |
ALADES - Alarme Despertador |
Daniela é enfermeira em um grande hospital, e tem os horários de trabalho muito variáveis.Para piorar, ela tem sono pesado, e uma grande dificuldade para acordar com relógios despertadores.
Recentemente ela ganhou de presente um relógio digital, com alarme com vários tons, e tem esperança que isso resolva o seu problema. No entanto, ela anda muito cansada e quer aproveitar cada momento de descanso. Por isso, carrega seu relógio digital despertador para todos os lugares, e sempre que tem um tempo de descanso procura dormir, programando o alarme despertador para a hora em que tem que acordar. No entanto, com tanta ansiedade para dormir, acaba tendo dificuldades para adormecer e aproveitar o descanso.
Um problema que a tem atormentado na hora de dormir é saber quantos minutos ela teria de sono se adormecesse imediatamente e acordasse somente quando o despertador tocasse. Mas ela realmente não é muito boa com números, e pediu sua ajuda para escrever um programa que, dada a hora corrente e a hora do alarme, determine o número de minutos que ela poderia dormir.
Entrada
A entrada contém vários casos de teste. Cada caso de teste é descrito em uma linha, contendo quatro números inteiros H1, M1, H2 e M2, com H1:M1 representando a hora e minuto atuais, e H2:M2 representando a hora e minuto para os quais o alarme despertador foi programado (0≤H1≤23, 0≤M1≤59, 0≤H2≤23, 0≤M2 ≤59).
O final da entrada é indicado por uma linha que contém apenas quatro zeros, separados por espaços em branco.
Os dados devem ser lidos da entrada padrão.
Saída
Para cada caso de teste da entrada seu programa deve imprimir uma linha, cada uma contendo um número inteiro, indicando o número de minutos que Daniela tem para dormir.
O resultado de seu programa deve ser escrito na saída padrão.
Exemplo
Entrada: 1 5 3 5 23 59 0 34 21 33 21 10 0 0 0 0 Saída: 120 35 1417
Adicionado por: | periclesmachado |
Data: | 2009-11-29 |
Tempo limite: | 0.103s |
Tamanho do fonte: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Linguagem permitida: | Todas exceto: ASM64 CLOJURE ERL FSHARP NODEJS OBJC PERL6 PY_NBC SCALA SQLITE TCL VB.NET |
Origem: | Primeira Fase da Maratona de Programação - 2009 |
hide comments
|
|||||
2017-05-03 04:49:35
nâo consigo submeter import java.util.Scanner; public class CodigoMaratona { public static void main(String[] args) { Scanner value = new Scanner(System.in); int H1, M1, H2, M2, i=0; int[] Saida = new int[100]; do{ i++; H1 = value.nextInt(); M1 = value.nextInt(); H2 = value.nextInt(); M2 = value.nextInt(); if(H1 != 0 || H2 != 0 || M1 != 0 || M2 != 0){ while(H1 != H2 || M1 != M2){ Saida[i]++; M1++; if(M1 == 60){ M1 = 0; H1++; if(H1 == 24) H1=0; } } } }while(H1 != 0 || H2 != 0 || M1 != 0 || M2 != 0); for(int x = 1; x < i; x++){ System.out.println(Saida[x]); } value.close(); } } |
|||||
2016-05-03 04:03:48
o meu esta certo porem não sendo aceito... fala resposta errada> #include<stdio.h> #include<stdlib.h> main(){ int h1,m1,h2,m2,hora,min; do{ scanf("%i %i %i %i",&h1, &m1, &h2, &m2); if((h1>=0 && h1<=23 && h2>=0 && h2<=23) && (m1>=0 && m1<=59 && m2>=0 && m2<=59)){ if(h2>h1){ hora=(h2-h1)*60; min=(m2-m1); printf("%i\n",hora+min); } if(h2<h1){ hora=(24-h1)+(59-m1); min=m2; printf("%i\n",hora+min); } if(h2==h1){ if(m2<m1){ hora=23*60; min=(60-m1)+m2; printf("%i\n",hora+min); } if(m2>m1){ hora=0; min=m2; printf("%i\n",hora+min); } if(m2==m1 && m2!=0 && m1!=0){ hora=0; min=0; printf("%i\n",hora+min); } } } else{ h1=0; h2=0; m1=0; m2=0; } }while(h1>0 && m1>0 || h2>0 && m2>0); system("pause"); } |
|||||
2015-03-22 18:06:48 JuniiorMastter
[java] int despertador(int h1, int min1, int h2, int min2){ int i = min1+(h1*60), f = min2+(h2*60); int min = f > i? f - i : (f + 24*60) - i; return min; } Acho que é muita burrice alguém por a mesma hora, tipo se o problema pede para programar um despertador, porque o vai querer por a mesma hora? Last edit: 2015-03-22 18:10:45 |
|||||
2014-08-12 16:27:26 Ricardo Kim
consegui resolver meu problema no c# foi necessário um "gato" string[] dados = Console.ReadLine().Split(' '); h1 = int.Parse(dados[0]); m1 = int.Parse(dados[1]); h2 = int.Parse(dados[2]); m2 = int.Parse(dados[3]); e para encerrar no final do processo Environment.Exit(0); |
|||||
2014-08-11 20:41:51 Ricardo Kim
seguinte já resolvi esse algoritmo em C e até que é tranquilo, mas em C# eu estou encontrando um problema as entradas de dados em C# săo em formato de texto, enquanto as entradas de C eu posso fazer entradas em inteiro diretamente, eu gostaria de saber o seguinte se por acaso existe alguma maneira diferente de dar entrada em c# diferente das seguintes maneiras: h1 = Int32.Parse(Console.ReadLine()); h1 = Convert.ToInt32(Console.ReadLine()); hora1 = Console.ReadLine(); h1 = Int32.Parse(hora1); |
|||||
2013-11-29 22:03:16 Adriel-David-Marcos Paulo
Caso ocorra 11 5 11 5 0 2 0 2 e tal,o resultado deverá ser 0. |
|||||
2013-11-01 11:18:38 Washington
O exercício não fala, mas se forem iguais as horas e os minutos deve retornar 0. Ex: 20 30 20 30, tem que mostrar 0 e não 1440. |
|||||
2013-04-20 03:53:18 Renato Cassino Marques dos Santos
Dica: Apanhei pra resolver, pois no meu algoritmo quando a hora fosse igual retornava 0. Ex: 2 2 2 2 = 0 Quando a hora e minutos forem iguais, deve-se retornar 24*60 = 1440. |
|||||
2013-03-17 19:38:34 Deryk Sedlak [UEL]
Odeio esse povo que dá dicas erradas: para 0 5 0 5 tem que sair 0 !! o meu estava saindo 1440 e estava acusando como errado, arrumei isso e ficou correto. -.-' |
|||||
2013-02-21 12:18:59 Flavio Marcos de Moraes
Dica JAVA: Ao fazer meu primeiro exercício me deparei com o erro "erro em tempo de execuçăo (NZEC)". Depois de pesquisas no fórum descobri que é preciso fechar o objeto que lę o texto com opçăo .close() antes de encerrar o algorítimo. Exemplo: ... Scanner leia = new Scanner(System.in); ... leia.close() |