← Back to topics
Topic

BRICKS

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

http://z-trening.com/submit.php?submit=7100142621&subm_code=1
h
halil
Probaj:
13.0 1.0 20.0 10.0 10.0
Odgovor je YES, kod tebe NO.
m
matteo123
Ali ja ne kužim šta kod mene ne valja.
m
matteo123
Ubiti kada u tom primjeru kvadar može proć kroz rupu???
h
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.
m
matteo123
aha, znači moram gledat sve 3 moguće dijagonale, hvala puuuno
m
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;
}