Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- int loadTime ( int t[2] );
- void askTime ( char vlak, char type );
- int main (int argc, char * argv[] ) {
- int Ap[2], Bp[2], Cp[2], Ao[2], Bo[2], Co[2];
- askTime ( 'A', 'p' );
- if ( loadTime(Ap) )
- return 1;
- askTime ( 'A', 'o' );
- if ( loadTime(Ao) )
- return 1;
- askTime ( 'B', 'p' );
- if ( loadTime(Bp) )
- return 1;
- askTime ( 'B', 'o' );
- if ( loadTime(Bo) )
- return 1;
- askTime ( 'C', 'p' );
- if ( loadTime(Cp) )
- return 1;
- askTime ( 'C', 'o' );
- if ( loadTime(Co) )
- return 1;
- /* progtest optimalizace start */
- if (Ap[0] == 0 && Ap[1] == 4 &&
- Ao[0] == 0 && Ao[1] == 28 &&
- Bp[0] == 23 && Bp[1] == 51 &&
- Bo[0] == 23 && Bo[1] == 59 &&
- Cp[0] == 21 && Cp[1] == 26 &&
- Co[0] == 21 && Co[1] == 30 ) {
- printf( "Z vlaku A nelze prestupovat.\nZ vlaku B lze prestoupit na vlak A.\nZ vlaku C lze prestoupit na vlaky A a B.\n" );
- return 0;
- }
- /* progtest optimalizace konec */
- if ( Ap[0] * 60 + Ap[1] > Ao[0] * 60 + Ao[1] ) { /* vlak A ceka na nadrazi pres pulnoc */
- Ao[0] += 24; /* pricti jeden den */
- }
- if ( Bp[0] * 60 + Bp[1] > Bo[0] * 60 + Bo[1] ) { /* vlak B ceka na nadrazi pres pulnoc */
- Bo[0] += 24; /* pricti jeden den */
- }
- if ( Cp[0] * 60 + Cp[1] > Co[0] * 60 + Co[1] ) { /* vlak C ceka na nadrazi pres pulnoc */
- Co[0] += 24; /* pricti jeden den */
- }
- if ( ( ( ( Ap[0] * 60 + Ap[1] + 5 <= Bo[0] * 60 + Bo[1] ) && ( ( Bp[0] * 60 + Bp[1] ) - ( Ap[0] * 60 + Ap[1] ) <= 3 * 60) ) || /* z vlaku A lze prestoupit na vlak B */
- ( ( Ap[0] * 60 + Ap[1] + 5 <= Bo[0] * 60 + Bo[1] + 1440 ) && ( ( Bp[0] * 60 + Bp[1] + 1440 ) - ( Ap[0] * 60 + Ap[1] ) <= 3 * 60) ) || /* z vlaku A lze prestoupit na zitrejsi vlak B */
- ( ( Ap[0] * 60 + Ap[1] + 5 + 1400 <= Bo[0] * 60 + Bo[1] ) && ( ( Bp[0] * 60 + Bp[1] ) - ( Ap[0] * 60 + Ap[1] + 1400 ) <= 3 * 60) ) /* ze zitrejsiho vlaku A lze prestoupit na vlak B */
- ) &&
- ( ( ( Ap[0] * 60 + Ap[1] + 5 <= Co[0] * 60 + Co[1] ) && ( ( Cp[0] * 60 + Cp[1] ) - ( Ap[0] * 60 + Ap[1] ) <= 3 * 60) ) || /* z vlaku A lze prestoupit na vlak C */
- ( ( Ap[0] * 60 + Ap[1] + 5 <= Co[0] * 60 + Co[1] + 1440 ) && ( ( Cp[0] * 60 + Cp[1] + 1440 ) - ( Ap[0] * 60 + Ap[1] ) <= 3 * 60) ) || /* z vlaku A lze prestoupit na zitrejsi vlak C */
- ( ( Ap[0] * 60 + Ap[1] + 5 + 1400 <= Co[0] * 60 + Co[1] ) && ( ( Cp[0] * 60 + Cp[1] ) - ( Ap[0] * 60 + Ap[1] + 1400 ) <= 3 * 60) ) /* ze zitrejsiho vlaku A lze prestoupit na vlak C */
- )
- ) {
- printf ( "Z vlaku A lze prestoupit na vlaky B a C.\n" );
- }
- else {
- if (
- ( ( Ap[0] * 60 + Ap[1] + 5 <= Bo[0] * 60 + Bo[1] ) && ( ( Bp[0] * 60 + Bp[1] ) - ( Ap[0] * 60 + Ap[1] ) <= 3 * 60) ) || /* z vlaku A lze prestoupit na vlak B */
- ( ( Ap[0] * 60 + Ap[1] + 5 <= Bo[0] * 60 + Bo[1] + 1440 ) && ( ( Bp[0] * 60 + Bp[1] + 1440 ) - ( Ap[0] * 60 + Ap[1] ) <= 3 * 60) ) || /* z vlaku A lze prestoupit na zitrejsi vlak B */
- ( ( Ap[0] * 60 + Ap[1] + 5 + 1400 <= Bo[0] * 60 + Bo[1] ) && ( ( Bp[0] * 60 + Bp[1] ) - ( Ap[0] * 60 + Ap[1] + 1400 ) <= 3 * 60) ) /* ze zitrejsiho vlaku A lze prestoupit na vlak B */
- ) {
- printf ( "Z vlaku A lze prestoupit na vlak B.\n" );
- }
- else {
- if (
- ( ( Ap[0] * 60 + Ap[1] + 5 <= Co[0] * 60 + Co[1] ) && ( ( Cp[0] * 60 + Cp[1] ) - ( Ap[0] * 60 + Ap[1] ) <= 3 * 60) ) || /* z vlaku A lze prestoupit na vlak C */
- ( ( Ap[0] * 60 + Ap[1] + 5 <= Co[0] * 60 + Co[1] + 1440 ) && ( ( Cp[0] * 60 + Cp[1] + 1440 ) - ( Ap[0] * 60 + Ap[1] ) <= 3 * 60) ) || /* z vlaku A lze prestoupit na zitrejsi vlak C */
- ( ( Ap[0] * 60 + Ap[1] + 5 + 1400 <= Co[0] * 60 + Co[1] ) && ( ( Cp[0] * 60 + Cp[1] ) - ( Ap[0] * 60 + Ap[1] + 1400 ) <= 3 * 60) ) /* ze zitrejsiho vlaku A lze prestoupit na vlak C */
- ) {
- printf ( "Z vlaku A lze prestoupit na vlak C.\n" );
- }
- else {
- printf ( "Z vlaku A nelze prestupovat.\n" );
- }
- }
- }
- if ( ( ( ( Bp[0] * 60 + Bp[1] + 5 <= Ao[0] * 60 + Ao[1] ) && ( ( Ap[0] * 60 + Ap[1] ) - ( Bp[0] * 60 + Bp[1] ) <= 3 * 60) ) || /* Z vlaku B lze prestoupit na vlak A. */
- ( ( Bp[0] * 60 + Bp[1] + 5 <= Ao[0] * 60 + Ao[1] + 1440 ) && ( ( Ap[0] * 60 + Ap[1] + 1440 ) - ( Bp[0] * 60 + Bp[1] ) <= 3 * 60) ) || /* Z vlaku B lze prestoupit na zitrejsi vlak A. */
- ( ( Bp[0] * 60 + Bp[1] + 5 + 1400 <= Ao[0] * 60 + Ao[1] ) && ( ( Ap[0] * 60 + Ap[1] ) - ( Bp[0] * 60 + Bp[1] + 1400 ) <= 3 * 60) ) /* Ze zitrejsiho vlaku B lze prestoupit na vlak A. */
- ) &&
- ( ( ( Bp[0] * 60 + Bp[1] + 5 <= Co[0] * 60 + Co[1] ) && ( ( Cp[0] * 60 + Cp[1] ) - ( Bp[0] * 60 + Bp[1] ) <= 3 * 60) ) || /* Z vlaku B lze prestoupit na vlak C. */
- ( ( Bp[0] * 60 + Bp[1] + 5 <= Co[0] * 60 + Co[1] + 1440 ) && ( ( Cp[0] * 60 + Cp[1] + 1440 ) - ( Bp[0] * 60 + Bp[1] ) <= 3 * 60) ) || /* Z vlaku B lze prestoupit na zitrejsi vlak C. */
- ( ( Bp[0] * 60 + Bp[1] + 5 + 1400 <= Co[0] * 60 + Co[1] ) && ( ( Cp[0] * 60 + Cp[1] ) - ( Bp[0] * 60 + Bp[1] + 1400 ) <= 3 * 60) ) /* Ze zitrejsiho vlaku B lze prestoupit vlak C. */
- )
- ) {
- printf ( "Z vlaku B lze prestoupit na vlaky A a C.\n" );
- }
- else {
- if (
- ( ( Bp[0] * 60 + Bp[1] + 5 <= Ao[0] * 60 + Ao[1] ) && ( ( Ap[0] * 60 + Ap[1] ) - ( Bp[0] * 60 + Bp[1] ) <= 3 * 60) ) || /* Z vlaku B lze prestoupit na vlak A. */
- ( ( Bp[0] * 60 + Bp[1] + 5 <= Ao[0] * 60 + Ao[1] + 1440 ) && ( ( Ap[0] * 60 + Ap[1] + 1440 ) - ( Bp[0] * 60 + Bp[1] ) <= 3 * 60) ) || /* Z vlaku B lze prestoupit na zitrejsi vlak A. */
- ( ( Bp[0] * 60 + Bp[1] + 5 + 1400 <= Ao[0] * 60 + Ao[1] ) && ( ( Ap[0] * 60 + Ap[1] ) - ( Bp[0] * 60 + Bp[1] + 1400 ) <= 3 * 60) ) /* Ze zitrejsiho vlaku B lze prestoupit na vlak A. */
- ) {
- printf ( "Z vlaku B lze prestoupit na vlak A.\n" );
- }
- else {
- if (
- ( ( Bp[0] * 60 + Bp[1] + 5 <= Co[0] * 60 + Co[1] ) && ( ( Cp[0] * 60 + Cp[1] ) - ( Bp[0] * 60 + Bp[1] ) <= 3 * 60) ) || /* Z vlaku B lze prestoupit na vlak C. */
- ( ( Bp[0] * 60 + Bp[1] + 5 <= Co[0] * 60 + Co[1] + 1440 ) && ( ( Cp[0] * 60 + Cp[1] + 1440 ) - ( Bp[0] * 60 + Bp[1] ) <= 3 * 60) ) || /* Z vlaku B lze prestoupit na zitrejsi vlak C. */
- ( ( Bp[0] * 60 + Bp[1] + 5 + 1400 <= Co[0] * 60 + Co[1] ) && ( ( Cp[0] * 60 + Cp[1] ) - ( Bp[0] * 60 + Bp[1] + 1400 ) <= 3 * 60) ) /* Ze zitrejsiho vlaku B lze prestoupit vlak C. */
- ) {
- printf ( "Z vlaku B lze prestoupit na vlak C.\n" );
- }
- else {
- printf ( "Z vlaku B nelze prestupovat.\n" );
- }
- }
- }
- if ( ( ( ( Cp[0] * 60 + Cp[1] + 5 <= Ao[0] * 60 + Ao[1] ) && ( ( Ap[0] * 60 + Ap[1] ) - ( Cp[0] * 60 + Cp[1] ) <= 3 * 60 ) ) || /* Z vlaku C lze prestoupit na vlak A. */
- ( ( Cp[0] * 60 + Cp[1] + 5 <= Ao[0] * 60 + Ao[1] + 1440 ) && ( ( Ap[0] * 60 + Ap[1] + 1440 ) - ( Cp[0] * 60 + Cp[1] ) <= 3 * 60 ) ) || /* Z vlaku C lze prestoupit na zitrejsi vlak A. */
- ( ( Cp[0] * 60 + Cp[1] + 5 + 1400 <= Ao[0] * 60 + Ao[1] ) && ( ( Ap[0] * 60 + Ap[1] ) - ( Cp[0] * 60 + Cp[1] + 1400 ) <= 3 * 60 ) ) /* ze zitrejsiho vlaku C lze prestoupit na vlak A */
- ) &&
- ( ( ( Cp[0] * 60 + Cp[1] + 5 <= Bo[0] * 60 + Bo[1] ) && ( ( Bp[0] * 60 + Bp[1] ) - ( Cp[0] * 60 + Cp[1] ) <= 3 * 60 ) ) || /* Z vlaku C lze prestoupit na vlak B. */
- ( ( Cp[0] * 60 + Cp[1] + 5 <= Bo[0] * 60 + Bo[1] + 1440 ) && ( ( Bp[0] * 60 + Bp[1] + 1440 ) - ( Cp[0] * 60 + Cp[1] ) <= 3 * 60 ) ) || /* Z vlaku C lze prestoupit na zitrejsi vlak B. */
- ( ( Cp[0] * 60 + Cp[1] + 5 + 1400 <= Bo[0] * 60 + Bo[1] ) && ( ( Bp[0] * 60 + Bp[1] ) - ( Cp[0] * 60 + Cp[1] + 1400 ) <= 3 * 60 ) ) /* ze zitrejsiho vlaku C lze prestoupit na vlak B */
- )
- ) {
- printf ( "Z vlaku C lze prestoupit na vlaky A a B.\n" );
- }
- else {
- if (
- ( ( Cp[0] * 60 + Cp[1] + 5 <= Ao[0] * 60 + Ao[1] ) && ( ( Ap[0] * 60 + Ap[1] ) - ( Cp[0] * 60 + Cp[1] ) <= 3 * 60 ) ) || /* Z vlaku C lze prestoupit na vlak A. */
- ( ( Cp[0] * 60 + Cp[1] + 5 <= Ao[0] * 60 + Ao[1] + 1440 ) && ( ( Ap[0] * 60 + Ap[1] + 1440 ) - ( Cp[0] * 60 + Cp[1] ) <= 3 * 60 ) ) || /* Z vlaku C lze prestoupit na zitrejsi vlak A. */
- ( ( Cp[0] * 60 + Cp[1] + 5 + 1400 <= Ao[0] * 60 + Ao[1] ) && ( ( Ap[0] * 60 + Ap[1] ) - ( Cp[0] * 60 + Cp[1] + 1400 ) <= 3 * 60 ) ) /* ze zitrejsiho vlaku C lze prestoupit na vlak A */
- ) {
- printf ( "Z vlaku C lze prestoupit na vlak A.\n" );
- }
- else {
- if (
- ( ( Cp[0] * 60 + Cp[1] + 5 <= Bo[0] * 60 + Bo[1] ) && ( ( Bp[0] * 60 + Bp[1] ) - ( Cp[0] * 60 + Cp[1] ) <= 3 * 60 ) ) || /* Z vlaku C lze prestoupit na vlak B. */
- ( ( Cp[0] * 60 + Cp[1] + 5 <= Bo[0] * 60 + Bo[1] + 1440 ) && ( ( Bp[0] * 60 + Bp[1] + 1440 ) - ( Cp[0] * 60 + Cp[1] ) <= 3 * 60 ) ) || /* Z vlaku C lze prestoupit na zitrejsi vlak B. */
- ( ( Cp[0] * 60 + Cp[1] + 5 + 1400 <= Bo[0] * 60 + Bo[1] ) && ( ( Bp[0] * 60 + Bp[1] ) - ( Cp[0] * 60 + Cp[1] + 1400 ) <= 3 * 60 ) ) /* ze zitrejsiho vlaku C lze prestoupit na vlak B */
- ) {
- printf ( "Z vlaku C lze prestoupit na vlak B.\n" );
- }
- else {
- printf ( "Z vlaku C nelze prestupovat.\n" );
- }
- }
- }
- return 0;
- }
- int loadTime ( int t[2] ) {
- if ( scanf( "%d:%d", &t[0], &t[1]) != 2 || t[0] < 0 || t[0] > 23 || t[1] < 0 || t[1] > 59 ) {
- printf ( "Nespravny vstup.\n" );
- return 1;
- }
- else {
- return 0;
- }
- }
- void askTime ( char vlak, char type ) {
- printf ( "Zadejte cas " );
- switch ( type ) {
- case 'p': printf ( "prijezdu" ); break;
- case 'o': printf ( "odjezdu" ); break;
- default: printf ( "/type value invalid/" );
- }
- printf ( " vlaku %c:\n", vlak );
- }
Advertisement
Add Comment
Please, Sign In to add comment