#include<stdio.h> #include<stdlib.h> struct str_zaklad { long int w[2]; long int h[2]; }; int main(void) { //---pobieranie danych short il_test; //1->10 scanf( "%hd", &il_test ); short i; //licznik na il_test char **respont = malloc(il_test*sizeof(char)*4);//allokuje odpowiedzi for( i = 0; i < il_test; ++i ) { char tab[4]; respont[i] = tab; } for( i = 0; i < il_test; ++i ) respont[i] = "NIE"; for( i = 0; i < il_test; ++i )//petla po testach { int il_zakl;//2-100'000 scanf("%d", &il_zakl ); struct str_zaklad * zaklad;//allokuje zaklady do{ zaklad = malloc( il_zakl * sizeof(struct str_zaklad) ); }while( zaklad == NULL ); int j; //licznik po zaklad'ach for( j = 0; j < il_zakl; ++j) scanf("%ld %ld %ld %ld", &(zaklad[j].w[0]), &(zaklad[j].w[1]), &(zaklad[j].h[0]), &(zaklad[j].h[1]) );//zapelniam danymi zaklady z danego testu... //... //---algorytm int x, y; //liczniki po zakladach kazdy kontra kazdy for( x = 0; x < il_zakl; x++ )//kazdy... { for( y = 0; y < il_zakl; )//kazdy z kazdym { if( zaklad[x].w[0] - zaklad[y].w[0] > 0 ) break; else if( zaklad[x].w[1] - zaklad[y].w[1] < 0 ) break; else if( zaklad[x].h[0] - zaklad[y].h[0] > 0 ) break; else if( zaklad[x].h[1] - zaklad[y].h[1] < 0 ) break; y++; } if( y == il_zakl ) { respont[i] = "TAK"; break; } } free(zaklad); }//petla po testach konczy obieg for( i = 0; i < il_test; ++i ) puts(respont[i]); free(respont); return 0; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | #include<stdio.h> #include<stdlib.h> struct str_zaklad { long int w[2]; long int h[2]; }; int main(void) { //---pobieranie danych short il_test; //1->10 scanf( "%hd", &il_test ); short i; //licznik na il_test char **respont = malloc(il_test*sizeof(char)*4);//allokuje odpowiedzi for( i = 0; i < il_test; ++i ) { char tab[4]; respont[i] = tab; } for( i = 0; i < il_test; ++i ) respont[i] = "NIE"; for( i = 0; i < il_test; ++i )//petla po testach { int il_zakl;//2-100'000 scanf("%d", &il_zakl ); struct str_zaklad * zaklad;//allokuje zaklady do{ zaklad = malloc( il_zakl * sizeof(struct str_zaklad) ); }while( zaklad == NULL ); int j; //licznik po zaklad'ach for( j = 0; j < il_zakl; ++j) scanf("%ld %ld %ld %ld", &(zaklad[j].w[0]), &(zaklad[j].w[1]), &(zaklad[j].h[0]), &(zaklad[j].h[1]) );//zapelniam danymi zaklady z danego testu... //... //---algorytm int x, y; //liczniki po zakladach kazdy kontra kazdy for( x = 0; x < il_zakl; x++ )//kazdy... { for( y = 0; y < il_zakl; )//kazdy z kazdym { if( zaklad[x].w[0] - zaklad[y].w[0] > 0 ) break; else if( zaklad[x].w[1] - zaklad[y].w[1] < 0 ) break; else if( zaklad[x].h[0] - zaklad[y].h[0] > 0 ) break; else if( zaklad[x].h[1] - zaklad[y].h[1] < 0 ) break; y++; } if( y == il_zakl ) { respont[i] = "TAK"; break; } } free(zaklad); }//petla po testach konczy obieg for( i = 0; i < il_test; ++i ) puts(respont[i]); free(respont); return 0; } |