← Back to topics
Topic

BRICKS

matteo123
Molim pomoć u ovom zadatku, neznam gdje griješim, prolazi 23/30.

http://z-trening.com/submit.php?submit=7100142621&subm_code=1
halil
Probaj:
13.0 1.0 20.0 10.0 10.0
Odgovor je YES, kod tebe NO.
matteo123
Ali ja ne kužim šta kod mene ne valja.
matteo123
Ubiti kada u tom primjeru kvadar može proć kroz rupu???
halil
Dijagonalno. Kod mi deluje ok, ali ne razrešavaš sve moguće položaje kvadra.
P.S.Pade mi na pamet zadatak. Ribar nosi štap dugačak 205 cm i želi da uđe u autobus. Vozač mu ne dozvljava da unosi stvari duže od 200 cm. Ribar se snašao. Kako?
Spakovao je stap u kartonsku kutiju dimenzija 100 x 200 x ???, dijagonalno.
matteo123
aha, znači moram gledat sve 3 moguće dijagonale, hvala puuuno
matteo123
hah, sada sam stvarno bez ideje, evo koda:

#include <algorithm>
#include <cstdio>
#include <cmath>

using namespace std;

double A[ 10 ];
double B[ 10 ];

int main() {
scanf ( "%lf %lf %lf %lf %lf", &A[ 0 ], &A[ 1 ], &A[ 2 ], &B[ 0 ], &B[ 1 ] );
A[ 3 ] = sqrt ( A[ 0 ] * A[ 0 ] + A[ 1 ] * A[ 1 ] );
A[ 4 ] = sqrt ( A[ 1 ] * A[ 1 ] + A[ 2 ] * A[ 2 ] );
A[ 5 ] = sqrt ( A[ 0 ] * A[ 0 ] + A[ 2 ] * A[ 2 ] );
for ( int i = 0 ; i < 6 ; ++i ) {
for ( int j = 0 ; j < 6 ; ++j ) {
for ( int k = 0 ; k < 2 ; ++k ) {
for ( int l = 0 ; l < 2 ; ++l ) {
if ( i == j || k == l ) {
continue;
}
if ( A[ i ] <= B[ k ] && A[ j ] <= B[ l ] ) {
puts ( "YES" );
return 0;
}
}
}
}
}
puts ( "NO" );
return 0;
}