SPOJ Brasil

Problem hidden
This problem was hidden by Editorial Board member probably because it has incorrect language version or invalid test data, or description of the problem is not clear.

SPOJ Problem Set (regionais)

8302. Elevador

Problema: ELEVADOR

A FCC (Fábrica de Cilindros de Carbono) fabrica vários tipos de cilindros de carbono. A FCC está instalada no décimo andar de um prédio, e utiliza os vários elevadores do prédio para transportar os cilindros. Por questão de segurança, os cilindros devem ser transportados na posição vertical; como são pesados, no máximo dois cilindros podem ser transportados em uma única viagem de elevador. Os elevadores têm formato de paralelepípedo e sempre têm altura maior que a altura dos cilindros.

Para minimizar o número de viagens de elevador para transportar os cilindros, a FCC quer, sempre que possível, colocar dois cilindros no elevador. A figura abaixo ilustra, esquematicamente (vista superior), um caso em que isto é possível (a), e um caso em que isto não é possível (b):

 

 

Como existe uma quantidade muito grande de elevadores e de tipos de cilindros, a FCC quer que você escreva um programa que, dadas as dimensões do elevador e dos dois cilindros, determine se é possível colocar os dois cilindros no elevador.

Entrada

A entrada contém vários casos de teste. A primeira e única linha de cada caso de teste contém quatro números inteiros L, C, R1 e R2, separados por espaços em branco, indicando respectivamente a largura do elevador (1 ≤ L ≤ 100), o comprimento do elevador (1 ≤ C ≤ 100), e os raios dos cilindros (1 ≤ R1, R2 ≤ 100).

O último caso de teste é seguido por uma linha que contém quatro zeros separados por espaços em branco

Saída

Para cada caso de teste, o seu programa deve imprimir uma única linha com um único caractere: ‘S’ se for possível colocar os dois cilindros no elevador e ‘N’ caso contrário.

Exemplo

Entrada:
11 9 2 3
7 8 3 2
10 15 3 7
8 9 3 2
0 0 0 0

Saída:
S
N
N
S


Adicionado por:Wanderley Guimarães
Data:2011-02-12
Tempo limite:1s
Tamanho do fonte:50000B
Linguagem permitida:Todas exceto: AWK CLOJ ERL F# GO JS PERL 6 SCALA SED TCL
Origem:Primeira fase da Maratona de Programação - 2010

hide comments
2012-05-21 16:33:13 Lucas ### AnyWay
1º não poste o código
2º não use chamadas ao sistema, system("pause") só funciona no windows, e provávelmente o servidor e uma distribuição linux.
3º só imprima as saidas que forem pedidas no problema, sem printf("entrada"), printf("saida") ou qualquer coisa do gênero

Last edit: 2012-05-21 16:34:17
2012-05-10 05:07:47 henrique
#include <stdio.h>
#include <stdlib.h>

int main()

{
int L, C, R1, R2, V1;

while (1)
{
scanf( "%d%d%d%d", &L, &C, &R1, &R2 );
if ( ( L||C||R1||R2 )==0 )
return 0;

if (R1>=R2)
V1=R1;
else
V1=R2;

if ( ( C>=2*V1 )&&( (L-R1-R1)*(L-R1-R1)>=(4*R1*R2) )||( L>=2*V1 )&&( (C-R1-R1)*(C-R1-R1)>=(4*R1*R2) ) )
printf( "S\n\n" );
else
printf( "N\n\n" );
}
system( "PAUSE" );
return 0;
}

{
int L, C, R1, R2, V1;

while (1)
{
printf( "Entrada\n\n" );
scanf( "%d %d %d %d", &L, &C, &R1, &R2 );
printf( "\n" );

if ( ( L||C||R1||R2 )==0 )
return 0;

if (R1>=R2)
V1=R1;
else
V1=R2;

printf( "Saida\n\n" );

if ( ( C>=2*V1 )&&( (L-R1-R1)*(L-R1-R1)>=(4*R1*R2) )||( L>=2*V1 )&&( (C-R1-R1)*(C-R1-R1)>=(4*R1*R2) ) )
printf( "S\n\n" );
else
printf( "N\n\n" );
}
system( "PAUSE" );
return 0;
}


Last edit: 2012-05-11 00:25:19
2012-05-07 04:11:21 Matheus de Araújo
Não entendo o último caso (8 9 3 2)...
Eu estou testando "if (sqrt(L*L+C*C)>=(2*R1+2*R2+(sqrt(2)-1)*(R1+R2))", que eu esperava ser verdadeiro, mas que na verdade é falso (12.04>12.07). É para arredondar?
2012-05-04 15:29:01 Felipe Avelar [UNESP]


Last edit: 2012-05-04 16:15:12
2011-05-28 16:35:37 Douglas Eric [Anhanguera-SO]
não
geralmente eles contam que vai ter um '\n' a mais no final.
2011-03-11 01:45:26 Lucas Thom Ramos [UFES]
O último '\n' tem importancia?

Last edit: 2011-03-11 01:46:26
SPOJ System © 2012 Sphere Research Labs | Projekty informatyczne i aplikacje na zamówienie. All Rights Reserved.