Прямоугольник и квадраты. Программирование на Си. Параллелизм
Здравствуйте форумчане, есть такая задача: "Имеются m квадратов с длинами сторон a1,a2,... и прямоугольник с высотой и шириной, равными h и w соответственно. Найти некоторое подмножество квадратов, которые нужно разместить внутри прямоугольника таким образом, что бы они не пересекались и закрывали максимальную часть площади прямоугольника. Вычисление должны проводится на нескольких компах (физическая связь), должен присутствовать параллелизм"
Я мало программирую, дошел тока до этого. #include<stdio.h> #include<conio.h> #include<alloc.h> #include<math.h> #include<time.h> int main() { metka: clrscr(); int* ptd, n, m, i, dlina, visota,Spr, comb; char ch; clock_t t1=clock(); printf("\n Vvedite chislo kvadratov: "); scanf("%d", &n); ptd=(int *)malloc(n*sizeof(int)); if(ptd != NULL) { for (i=0; i<n; i++) { printf("\n Dla %d-ogo kvadrata vvedite storonu: ", i+1); scanf("%d", &m); ptd[i]=m; } } else printf("Ne ydalos videlit' pamat'!"); printf("\n Storony kvadratov:"); for (i=0; i<n; i++) printf(" %d", ptd[i]); comb=pow(2,n); printf("\n \n Kolichestvo kombinacii = %d", comb); printf("\n \n Vvedite dlinu pramougolnika: "); scanf("%d", &dlina); printf("\n Vvedite visotu pramougolnika: "); scanf("%d", &visota); Spr=dlina*visota; printf("\n S pramougolnika = %d \n", Spr); free(ptd); clock_t t2=clock(); printf("\n Vrema vipolnenia %d", t2-t1); printf("\n \n Zanogo zaglavnaia 'Y', vihod lubuio druguio: "); if(ch=getch()=='Y') goto metka; return 0; } Если кто-то может помочь алгоритмом или кодом буду благодарен. |
Часовой пояс GMT +4, время: 16:45. |
Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.