PDA

View Full Version : نحوه اصلاح لیست فعالیت براساس روابط اولویت



afsane/68
یک شنبه 24 خرداد 1394, 17:20 عصر
سلام
فرض کنید لیستی از فعالیت به صورت تصادفی تولید شده و می‌خواهیم این فعالیت‌ها در لیستی جدید براساس روابط اولویتی که در یک ماتریس بعنوان داده وارد شده قرار بگیرند. به عنوان مثال:

لیست تصادفی تولید شده:۴۵۳۱۰۲(۶ فعالیت از صفر تا ۵ داریم که تصادفی در یک لیست قرار گرفتند)
ماتریس روابط اولویت:
0 0 0 0 0 0
0 0 0 0 0 1
0 0 0 0 0 1
0 0 0 0 1 0
0 0 0 1 0 0
0 1 1 0 1 0
( فعالیت ۰ پیشنیاز ندارد. فعالیت ۱ و ۲ پیشنیازشان ۰ است. فعالیت ۳ پیشنیازش ۱ است. پیشنیاز ۴ فعالیت ۲و پیشنیاز ۵ فعالیت های ۱و۳و۴ است)

لیست جدیدی داریم که می خواهیم به این شکل پر شود که در لیست بالا فعالیتی که هیچ پیشنیازی ندارد وارد لیست جدید می‌شود(فعالیت ۰) ، بعد دوباره از اول لیست یعنی فعالیت ۴ بررسی صورت می‌گیرد و فعالیتی که پیشنیازش در لیست نیس انتخاب می‌شود یعنی فعالیت ۱ دوباره از اول لیست شروع می‌شود فعالیت ۳ پیشنیازش در لیست اول وجود ندارد پس انتخاب شده به لیست جدید وارد می شود. این مراحل تکرار می شود تا دیگر لیست اول خالی شود و لیست جدید به این شکل پر شده است: ۰۱۳۲۴۵

چطوری میتونم اکد این رویه را با کنسول بنویسم.
اگر میشه راهنمایی کنید.
ممنون.

RmeXXXXXXXXX
یک شنبه 24 خرداد 1394, 22:39 عصر
نوشتمش براتون! ببین جواب میده؟
کاش چند مورد تست دیگه هم میذاشتین تا مطمن بشم.
بهرحال...
http://barnamenevis.org/image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAcQAAADsCAIAAAB ltUGnAAAgAElEQVR4nO2dd1xUV/rw eN9E9OzeZPsmihkQeyoiKAottgVUboVBAWMivSO0jsz1KFXEQW soIII6IgF6b2JYIwx9kRTdn 72f35/nHmHs7cOzMMMIwXeL6f8zHDZBiGO3e PM95nnOuwpUrV/Lz85OSkoKDgx0cHBQBYGwxGY3JipMmT/560uSvvp70t4lfffnXv33 xRefffb/Pv30048//vjDDz98//3333vvvQkTJkyYMOFdAJCCDz/88OOPP/7LX/7y2Wefff755wp5eXlxcXEBAQFKSkpTpkzh8Xi/sZVfh8Hrt8ErMfwinp8l8lIiLwbiuRQ8Gwy07x3wBbwVnqPx/MWz58 fPnv 9Nmzx0 ePHr008Mff3zw4If797/v6 u7d /e3bt3u7u7u7u7uwaicyCY39LN4C6DHlHcE6aXQZ8w9yXyPYPff/99x44d/5E10dHRsn3CBNt9sn3C4bBz3ao//vgjICDgiy mDBhwkcfffTpp59 9tlnComJiQEBAZ9//nliYuKPP/5YV1fH5/OvE1RKwY0bN24S3GJw /bt27dv074UCfN7yWeurKzEL4zP51 7du0qRUVFRbkYysRzRRTM 0sZXBZDCUVxcfElgosXL164cOHChQtFRUWFhYXnz58/d 7cuXPnzp49e/bs2TNnzpw5c b06dOnT58 derUqVOnCgoKCgoK8vPz8/Pz8/Ly8vLyTp48efLkyRMUubm5x48fP378eE5OTk5OzrFjx44dO5ad nZ2dnZ2VlZWZmZmZmZlBkU6RlpaWlpaWmpqaQpFMkZSUlJSUlJ iYmEDBEwW6PyEhITExMTExMSkpKTk5OTU1FT1zenp6ZmZmVlYW eiX4JTHJGhnQD8/Kys7KysrMysrIzErLyErNyEpKzeAlp8XxkqPiEoLDOd4 AU6u7t8dsN1jsdd023Y9vS1r1qxduXLlihUrli1btmTJkiVLlu jo6OB/F1Noa2svWrRo0aJFCwm0tLQWLlyI7ly0aJG2tra2tvbixYvR8y xdunTp0qXLli1bvnz58uXLV65cuXLlym //fbbb79dvXr1mjVr1q5du3bt2vXr169fv37Dhg0bN27cuHGjrq6 urq7u5s2b9fT0tmzZsnXr1q1bt rr6xsYGBgaGhobGxsbG5tSbNu2bfv27Tspdu3atXv3bjMzs927 d5ubm5ubm hsLS0tLS03Lt37969e/ft21dTUzN9 vS2tjZx5zN5zov8sKDPC0lzc7Ozs/P9 /fFfejEfU5pVFC0tLTEWu/uvl5RnxpfnxrflBbfnB7fnB7flh7fnh7fnh7XnR7XnR7Xkx7Xm x7Xmx5zPz3m /SYB1KP79Njvs I7cuI7cuI782Iv5cRfzcjvjsjviMjviOD15bBa8ngtWTwmtN5D Wm8riuXtq1a1tTUFBMTU1VVFRISgn2qgGLSxMTEzs7OaxTS /QGAU2UVRR37ty5c dOlTB3RFHFgOnZmzdvoh9HKvXatWsVBNJoVJxJmUjWaIkomCZF Mi0qKkIyPUeBTXrmzJlTFAUU4jSKYGoUSwqbFDs0NTUtNTWV1G gSRSIFdmg8QZwo4uPjsVvRk6SkpCClpqenox NhM6Q3SDIIBD5bCJlSo1Mmkzjk1LjeElRcQlBYRzvo/6OLm7fHThkvsfSdNv2zZv1Vq9eg2S6dOlS7EGsUXwDyRQ5VFNT U0tLS0tLS1NTEysVQVOqjo4OqdQVK1Zgn65atQordd26daRSN2 3ahHxKKhX71MjIyNjY2MTEhPTp9u3bd zYgX2KlGpmZkb61MLCAisVybS1tbWkpEQan4pTKk2mTk5OEmQ6 WKW2tLTE7N3Vfa2sPjEKjcbEqOakqOYkTlsSpz2J05nE6U7mdC dz7iVzepM5vcmc 4McvcmcvhRuXwq3N4V7N4XbncLtSuZ2JHPbkrktydzmpOimpOi GpOiGpOiO4iKjFUubmppcXV1dXV1PnToVGhqKfKpgZWU1ZcqUh w8fVlRUoBBPpE ZbsUOJaNR7FAkx rq6urq6hqK2sFQIwwWLhIr qFIqWSIKlKj0huT/HJAjdJMWlxcjP4luUhBhqVkZIpNisJSrFFaTEozKRmTMmM95B0 cjaZS0KJRpkZxNMrUaGxsbGxsLO02UiqKUrFPSaWSBhyURmkmJ ZUqvUwzMjPTMzJJmcbGC2TqddTf0cVt/3eHzPdYmphu27xZb9Wq1StWrEAyJT24WBhSpkig2Kfkv5KVikJ UplJXr16No1QcokpWKgpRkVK3bduGlLpjxw6kVNKnZmZmewiQU qurq7FMEUP2KVZqc3OznZ3dgDKV3qctLS1R5qadFaXVMWHVMWF 1MWH1MWGNcWFNcWHNcWFtcWHt8aGd8aHd8aHd8aH3eKG9vNBeX sh98aNP MteXkgvL/QeL/QeL wuL6ybF9bBC vghbXHh7fEhzfHhzfFhjfEhtfHhtfEhncUnTVcpo1l6urqWlVV 9cUXX7z33nsK8 bN4/F41dXVKKaj VSkUpkaxaEoEihWZ11dXT1FwzCoq6urq6vDkq2urkZWvXXrFno llZWVSKnMyHSwsSfToeKSeppJaZAxqYQcX/rsnqlRFJYyNYq8gzN6rFHKof0aJXN5WjQaSxEjBvwAmlKTk5NT UlLIEHWwpBOI9KkEpTJlmpqemZKeiWXKjeUFhUZ6HfV3cHbd/90hM3MLE9NturqbV61avXz58mXLluno6CD9YQ SX5IyRd7U1NRcsGAB7QYOWgdM/JFSkVWRT8koFYeoWKlk1o9DVBSlkj7FIaoEpVpYWFRXV0 bNq2pqek8RSFBkTAXCC6K4dKlS3V1dQcPHuzp6bnEwPtosKGJt YThfTSY VFqaGiI2qnfXnrpVoRfVYRfdYRfdaRfXaRffaRfI8evmePXzPF r5/i1c/y6OH7dHN8eju89jm8vx7eX4xtpa4 fPNLWXuQ9vRzfHo5vN8e3m PXyfHr4Pq3c/1buP4tXP8mrn8Dx7 O41/D8a J9L8T6d9ytkB/iRYp0 jo6ICAgHfeeUdBUVHxyZMnZI48oE/xJCkZjeJQtKamBjm0oaGhsbGxqampqampubm5ubm5paWlmaBFF M1iaGpqamxsbGhoqK vR2JF4SpWKvIpn88n50 lkalIb0pvUqZAaeDzD f4KM3Hs6W07F7kJCnWqDSTpOQMKZYpc1aUplFSoEyHRjOIiopC N2hRKvYpjlKRWKUkrZ90/H3S 1SsTFPS45NSkEwDKZna7D9oZm5hbGKqq7v5229XkTJF0tRmQAt LkUARGhoaGhoa Eus1MFGqWSIihN/Woi6hcLAwICW9ZuYmJBKJWdRmUpFMq2trc3Ly8unKCA4JcxpYc 6I4s6dOzY2Nl1dXWcZGJpYv5GIoYn1OQY1NTVcY922S dvBHrcDPS4FehxK9CjOsijOsijLsijPsijKcijOcijNcijPci9 M8i9K8i9O8gNDfInGppYhx84RLuHeqR7Z5B7e5B7W5B7c5BHS7 BnU7BnQ7BnXbBnTbBndZDn7SDP20Get4I8mwtytyycT8rU3d29 qanp3XffVVBUVHz9 jVz3hf7lJb1oxIQliktIK2trSU1iozZ2tra1tbW1tbWPkjaKFp bW1tbW5FqsVXr6upoISpO UmZlpWVMSNNkYibM5IyICVnSEVOlWKZkjk iknJ7F6kSZFMsUNJjSJoYR2t0JScnIxD0XgiCI2NixMMwp79uo yOjoqO5nKjaIPD4XK4XA6Xy VymUpNwDFqUnJycgryKppPTRVvVWzQ1DQGDJ/SJgSkkWmisEw9j/g5OLvY7D 422yPsYnppk263367atmyZUuXLl2yZAkWH6o1YbEuomDKVINg/vz5pFiRVSUolVmbWrVqFUr8SaWSE6nIqsinKOWXkPXTlGpGcOf OnWnTpt24cYP8y8f8 yflwUfw Xxzc/Pm5mZm1VEameYwuH79eqjut03nCspcD1W42V51s73mZlvpYXvD 49Atj0NVHgdrPA7Wehxs8DjY6HmwxfNgq fBVs8D7Z4H2j0PhFnZ0OxJ3g6zsunwPNDueaDN82Cr58Emz4NN ngfrPQ/VeR6q8Tx0x PQbQ/bGx62le62fHfba 62V91s63LSddVnkTJ1dXX98ccf 2VaVl6OBllF40vNnepqlNXXY41iiba3t3d0dFA9I/2DaCQRPYTp6OhAem1pbW1ubm5saqpvaKirr8fx6c1bt27cuMG/fv0an19x9Wp5RUVZeTmOPS9TQ0qBips EmlSZq2JzO5JjeKwlMzxpU/tmRolZxhpViJnSFFMioLQuLh4yp5oIIHGRMfEoHiTGxXFjYric LkcDpfD4XA4nEg0 uFERnIiORwuV/AALpcbHR2Ncv 4 Pj4eB4KfnHiTyqVZsq0tHRcHEtNTU3Bt1LTiEcLfaSZE6zSyDQ uMSUmLhHL1N5JSKYrV36LZLp48WIsPia4ak/m EigIqEpVWTiLzlKJcv9zIlUPT09WqFfcmGKlvXfuXNn6tSp165 dI7s1cKsGbtigkSxMijDl5eW7du1qaGhIZYBdxkzw8f1MfV 9ejVk/dLGMydLHWxKHWzKHGwqHGyuOdlcd7K67mR1y8mqytmq2tmq1sW q3sWqycWq2cWq2cWqlRqhe62YEjc0sQ7dK3gAenyTi1W9i1W9i 1W1i1W1s1WVs9VtZ tKZ vrztZ8x/1XHfeXO 6/4ri/Jitl45zpkmR65UrZlSvkjLBApmSEyufz249/hUZz9sTatL/eTvryauznfD6/pgZNjwpM2tLSgj1KNd4JuuuoIdRyJ2rQwf197e3tKEptampuaG isq6uvqam9c fO7dtVN2/erKy8QQWnV3H1qbT0yuXLpaIGTZR0Y6LbElJ7kRrFST0zu0fTU jjHJ6dKSY1ik9JmSEUWmvA51x/cUXk9WWhKSEiIj49HKTyZqkdFRUdFCRwaFRWN/RgZyYmMjIyIiIyIiAyPiIiIiAgPDw8PjwgPjwiPiKDupMQayUH fHo2cGhOLrSqYTUWfwZSU5JQUZEkUqKampaWkpgpGChoIwZe0i QJxMs3sL3OJj0wTU2LiEjkx8QEhEUim1jYHdpvtMTI22bhx04o VK5cuXaqjo4NlipVKipWsO5Fh6fz589Up8O0hKFVklEpOpK5bt 47ZPoVCVDyLKk6puDCFQ1Qk0/Ly8iiKaPweCs M4/Ij2dGBIZvnLl vH379rq6ugQGhibWqNXa0MSa9DV5P1PZV65cCV6jXV9wvPigRf FBi8sHLa4ctCi3tbhqa37N1vyGrfmtw ZVh82r7cxr7cwb7Mwb7cwb7c2biRFiYYl/BPopIRaW P822Zs32Zs32JvX2ZvX2ZvfsTevsjO/ZWd 4/Cea4f3XD28p KQZdkhy9JDliWHLO kJayfpSqVTEmfYpmigWT6vy9K//dF6f8 PfvfR1n/fcApDPkLn8 vra1DyT1K7VtbW9vabuToK/RjcKLq7t27d3vu3u1hdisLD9F0d3d3dXV3dt7O0VdQ0D92vbUN pfwo36 pqamqunP79u0bN26iZL i4ipK80tLxcn0cknJ5RIhUYrucxowGhVpUiRTmkmZHVHkVKm41 J6MSUVqFKdj5Awpw6Q8NCuKHIrydA6Xy6HSdkH zuFyOJwIgUYjwsPDw8LCQ0JCQ0NDQ0PD8AgLCw8LjwiPiMAyFT wDVyBV9EGMi4uPi4/n8QQxanIyJVNBq5bQIHyampySgqcIpNYpOiaZYudMhWTqi2S6a 7c5lqmOjg6aMCWbnMieJ6ZMaZEpcui8efPmzZtH3kD/l5xOZc6l4uZWCUpFib ErJ8MUWlZv6mpKTNEraqqmjp1alJSElawkZGRCYWx6V7J9SKTb ft2EiBHx8bGLlq0qLCwEHdlYQxNrJ88efLkyRNDE2uyW4u8H1X GMJaWljwez23SB3xOcKK6coq6cup85Yz5ytnzlXPmK59coFyw4 O9nFygVaSpd0FIq0VIq01Kq0FK6qqV0jRi G9bjH4F iu/G9dcWKuFxdaFS2UKl0oVKJQuVLixUOq ldFZT6ZTm3/M0lY9rKGdpqGRoqKRpqKTOVynxcFj06bsDyJRmUmGZXkUybcz8 2/8 PfvfR5n/fcD97z2P/3bsO37kIz6fT82ToklSFJTePG6goBBUghZ74OUcPT0iBkbk/ 3pudfT03P3bk9VrqFAzfo5lW3tra1tzc3NjY1N9fUNtbW11dXV VVVVaPKUz79 7Rq/oqKirKwc/Z1ASiWy /7IFIehTGmKK9aLNCmt0ERL7WkxKc7xT506hRN8CZOkIntIM8R3 45M9pLh1NDYuLiYmBsWeKHOPiIyMQCoUwI3kcCIjOREREeHhEa GhYaGhocHBIUFBwUFBwcHBIcHBIcHBocEhocinODiNwOk/kiqX2x kxsTGxcXzeAkCmyJdMtN9wetPS01NI31KyFQqm2ZkCIZomcaLk KmhkTFTphhaCxTNpKRMsUnnzp1L 5dUqoS5VFq5Hyf 4qJUmlL19PTIrN QgjaRSs6iVlVVqaqq8ng83HpFdgtIM8WJq14IU1NTLpe7YMGCc fO4Z FMTSxfvjw4cOHD5lexvdjL2NiYmJc/vbutYhA3uzJSbMnJ6tNTlObnKk2OVttUu7cSXlzvz49d L5eRML1SdeUp9Yqj6xTH1iBTF81q3Bz48xNLH2WbcGP6ZcfWKp sQS9YmX1CcWqk88M2/iqbkT8 Z nTt3UrbapHS1yWlzFFPmKCarKRa7Htb66P8MPGeKU/xyMXOmtxO//O8Dzn97PP/TYfWfpi3/qVuS7PwekikKStE8aXt7e0fnrVwDBYXgywKVilwKJzX37iGf3u 3u7i4JVlAwOH6zowPNnzY1NTU0NtbX19fU1t6prr5dVXXz1q3K ysprfP5VqhIlSPbxEOtTmjoH1uglYmmTyEKTSJPixlKU42OZil vaJKEbn9QogqzaEyblxcbGoeISkmkEAc7cIyMj0T1hYWFhoWEh ISHBwcFBgUEBAQEB/gH /gH AYEBAYGBQcHIp HhEWHh4eHhEaRM 8WMotSo6JjY2Lh4XkJiYmJScnJySmoqrW0qMyMjMz0jIz09PS0 N/zppKSmpw5FpRkZGekYGrZofE5 EZOrh7Wvn6Gxl/R2S6YYNG5cvX4EWOy1atEiLgciWUuaEKfLmXAbzKMQpdcDEX3K 5HykVz6IipTJDVNw he2GZBrP41Hfp0e1CWzdsmWroYm15PXNhibWxsYmxsYmpgRcbt QCTc1z585v27YdzS6gsWPHTkMT6z6JGJpYExbdjUZMTKzLxAnX IgITZislzVZKmaOYNkcxc65i9tzJufMm582bdFr96/Pzvy7S LpY4 tSja/LNL6uoIbP rXkD6Xd9lm/tmLB1xULvi5fMKl0waTLCyZd0phUqDHpzPxJp9Qn5alPzlVXzJ 6nmDlPKX2uUupcpWS1b0rcDmt9/H9Fy1RJSenXX39FoShujkIBKZ/PvzNzAn/6 yVTPzg75SM n3 Z89l/O6z 07Tlz1qdP6tm/Fn5VbTtBD6f39DQgEr3ra2o4NTZ2Xk710BBIbiUUum93t7e2ny j/sQ/rLyvr6 vNt9IQcHIyEhBQcEoPz Mui14APUNRnk12KelwQoKBrm3OjsF9aiWlqampvp6erKPO09RJ z81f4oHVZjC b5gkPYUm9QzA1JmNHqegLZyFHeW0Cr4OCYlU/tjx44xa00ZAvUIaZRc2oRno6iiU3 CHxkZGRGOJkDDw8LCQ0PDQsPCwsLwl6HIocFBwYGBgQH AX6 fkeP vgc9fHx8fHx8fXx9fPzDwgMDAoKCg4JCUXfjmJU9JwREdSIjIy IjIzkcKKiomNiYuPjeYlJSckpqWlpaRkZuGaU3b/6MzMzIyMzPT0DKTU1NS05RUimZBlKSpmmpWekpGVIkOnOXWZYp qhFf9GiRbReUdKhtLCU5lOaTOfMmTNnzhx8e2hRqvRKpRWmJGf 9SKm3b9 eMmVKQkLS1q0G vqGaBgYGBkYGBkaGhuaWP8oEUMT6 3bd KxY8euHTt2RUXHaC1cdL6waOfO3bt2maGxe7f57t3mhibW4ubx EIYm1ubmFnjs2WO5Z49lXDzPedKH16JCkzVVkxeqpi1UTV omr1I9bi26klt1Xxt1TPaqoXaqhe0VS8tUS1dMqVMZ0qFjgoa5 E80NLH20d1Auwc9rFxnSqnOlJIlqpeWqBZqq57TVj2trZqvrZq rrZqjrZq9SDV9oWraQtXkhaqlRxy1Pp0gSaa0PlPkID6fXzb1/d8unnsWH535zSd8Pv9UwCf/qV3yn9sz/nPjqz/5n/7J/5Rz4F0 n9/Y2Ii6oFBLU2dnZ1fX7ROGxJxpaFlfeZiCgkJYxf379 /fryswVlAwLqhDN6i7K8IUFITuVlAIq0C3w8qo PRKiIKCQe7tri5U329FxX0UnNbU4GQfLeQn205pqy uCGpTgpo FZPiUXzpkoj2e6ZJJWiUnCHFiGzRR7OlEgr3NI3STCpyaRO5Nh R1PkVFRXE4nMiIiPCwsNAQgTSpFF5wIzAwMCAgwN/f39/P39fH9 iRo95e3p4enl6eXt5e3t7eR48c8fHx8fX19fP3DwgMQt8aEhIS EhoWFhoaGhIqmAJAhIeHh4WFcbjcqOjouPj4xKTk5JTUtPSMjM xMtHL/2LGcY8fI1QfZmZlZGRkCnwr3qg5dpslpGYnJaZRMeYGhkmS6cO FCUnBMpdIiU9wXhX06Rxg1NTXyS8lKpc2lSt UKi5ExYUpstaP1/UjmaakpBsZbzcy3m5sssPYZIeJ6U4T052m23YZm1oONGe6d9du i91mlmiYme81M98bG8fT1l5SVHTRfM8 8z379lhYoWFhab19p5XkJ9yxy3rvvv20kZCY7PzNX/jxkanL56WvVM9cqZ69Uv34SvXclfPyV847vXrumTVqhWvULq5R u7xOrXSdWtk6tQpq GzVw0/us1VP5D0V69TK16mVrlMrXad2aY3ahTVq59eonVmtdmrV3LyV8 3JXzstZqZ69Uj1zpXr6SvVSP49Fn30oSaZkoz7ZW3p6ykfPeFG 91hZRkz7j8/mZHh8mOb0fazeBe/BdzoF3OQfeQTKlKvitlEm77t6tOmmooBByBcWkfX19FWHIk4Kt a66GKygYn6pDpkSGRTJFX5D3V4QpKBjn1/ahfP9KiIKC4YnbXV2dwsEprkShNf63bt1CLbHYp/3Np XlZWXlpE J FSSSWk9TyLbniRoVNyyUXK2lLZIlNZGSqb2IjVKMymq4MdRbaQ owQ8PCwsV5O BAf4Bvr5 1PD19fX18fH1Oepz5MgRb29vL08vDw8PNzc3N1c3V1c3N1d3dz cPd3dPLy9vb 8jR4/6 Pr6 fn5 /v7 wcEBAYFBQYGBgYGBgUhxwYFBQUFhwQHh4RERERwuVExsXEJCYn JKSlp6RlZWdnHjuUcy8npX4lw/PixnJzsY8eysrMzM1F8mibcHTVcmcYlJkfHJUovU9Kn5DJ8Wlh KFvTJyBRpFJlUjWI4SsVzqXgiVdzqflqIiidSmR3 t27dmjp1ambmMTNzqx07LXbusty5y3LX7r27du/dbbbPzNwKDfM91uZ7rPdY2OyxsLGw3G9hud9y73eWe7/bu 8AGvusDuKRkJi6ZOmK4uJSK tD1ja25LDZfxiN/d/Z0cZ3B zFjZTUTPcpf61Mic3U1cnS1cnZvDR389L8LUvzty49s3XpOX2d Qn2di/o6JUY6pUZLKoy0K4y1rxlrXxc/ IwvK4y1K4y1S42WlBotuWSoc0Ffp1Bf54y zumtS/O3Ls3bsvT45qU5m5fm6K8siwzQ eIz0TL95ptvfv3112sM0CRp jef3rOxaNTW8J/4hYQ UyRT1AxFdUJVnTBUUAgVIdN cRoXMGUqeIgEmYYqKBieqOruRs2nSKbNzc1ocRStEkVbZkrbWQ qvj8I RRpFJmVq9IIwIgNSmkZpi0PImBQvOMEyJYtOzMK9yElS5rZPzL A0Lo6aLeVwIiIiwkJDQ4KDAwMD/Xz9fI76eHt7e3t5e3l5eXl6eXp6erh7uLu5u7u5u7m6ubq4uji 7ODs5Ozk6OTs6Ozu5ODu5ODu7uri4ubl5eHp6eXsfOXLkyJGjR 4/6 Pj4 vj4 vj6 vr5 aF//fz9AwIDA4OCQsPCIjmcmNhYXkJiUnJKWnp6ZlYWFmlubm4u9bs fy8nJzj6G/nhQ/acylmlkdHxASLiHt6 do4u19Xc7d5kZGBqtX79h2bLlTJkyrUorPdGWP ECFM7x1dTUZs ePXv2bPIGmf4PLUoVl/UjpZIhqoSs38jI6NatW2pqasdz8w7buVjuPbB338F9Vof2WR2y srZFw9rmsLXNYZv9djb77fZ/Z7//O/vvDjigceCg48FDTuQ4ZOt8yNY5NS17 co1paUVh 1cyWFn72Zn72bv4C5uODh6oOHo5EmOzKxc9xmKt7NSTuzQPblD N2 nbv6uzWd2657brVu4W/eC aYSi02lFpvKLTZU7N3A37fh r4N16023BQ/bjC vG614fq DRV7N1Ts3VBmsanUYlOJxaYL5psKd ue2a17Zrdu/q7N bs2n7baXsqL2aQ8qbGx0cXFZWCZkpbkTvp/QV997v23L52 /Cufz/c89z0argW99jl30WwpLTLt6OhgyrS3txel aQrcT4vhUyN8mp6mZEpkmlraytaFoVkWlNTg7abunnzJm0bFIF PKyrKy3FhqoxqnBKEpZcuFdNyeQnFelxoYpqUtoMJWopHMymzR f/48eNkF1SmcOFe5CQpTaNkWJqQkIDD0ujoaA6HExERHhYaGhQY6 O/n5 vjc8Tb28PDw93N3c2NUqezM4I CFEAACAASURBVLKno6OTo4Ojg72Dg52D/WF7ezsHezt7e3sHe3sHBwcnJydnFxdXNzd3d3d3dw8PDw8PT09 PTy9PLy8vb29v7yPeR44cOepz1NfPzz8gIDgkJDwyMjomloci0 zQk0xxkUrLslpOTc xYTlZWdkZG5sjK1MvHztHFykZIpmgBvkiZ0pS6gFiMT6b5uKCP o9HZFLNmzZpNQAaq4pRK1qYWLlw4qNoUXoQqLutHPi0oKNi0ad OOHTtS07LdPHxs7VwPHHI6cMjpoK3zocMutnauaBy2d7NzcMfD 3tHD3tHDwckTDUdnLycXbzyO5Zxcs3ZTxdVKZ9cjLm5H0XB19y GHm4evm4evu6efuOHh5Y/HiZOnvOep3DmRddp6x2mbHWdttp3fv61o/7ZLB7dfPri99ND2Ctvt12y3XbfbdsN 2y0H01sOpnccjKsHM245GN9yML1hb3rdfhvfdluF7bYK2 2lh7ZfPrj90nfbC7/bXnho90UnG350KM/Xx3njGiRT7FPRMpW80sm1oPdY5Rtu8Rvn3Dfbwmr5fD7a/xTLtK2tDS13EsyZhlzBm9pS1SahAtT9ugIjqhbV11cepqBglF LC1OC 8sFMq3OI2dhFRQCL E0nxmZitxTihafkpk ruOLax2lhaJSBqTYpDipJ9c70fbWI8NSJFPaJKnI/Z8k7KTH4/GwTFHpKTw8PDQ0JCgo0M/X1 foUW9PL3c3N RQJ0cnB3sHctjZ2dsdtrc7bHf40OHDtocP29rZHbazO2xvb /gYO/g6Ojk5Ozs7IzOKerMcnNzc3f38PT09PLyPnLkqI Pr59fYHBweGRkVExMfEICikyzsrJxjp8rvEMrmuLIzMxMT09nN FDJUqaHHZytrL/bsXM3TaZaWlrkEntpYMoU 5Q06SwCWpQqZeIvTbkfZ/3Mdf16FDhEdXV1PX369PTp0w0NDfPyCy5cLDl7rgiNc cvoHG 8CIehUWX0Ci6UIzHhYsltLF589aent6Lly5fvHT5UnGpyFFcck XcKLlcRhtBC2d0VF67k5lYk5lYm5lQl5VQl5XQkJXQlJ3YnJPY nJPYnstrz V15vK6cnldubzuwY uXF5nLg89T9txXnNOYnN2YlN2Yj0aueml6YlRHq4bZ0y5fPkyj 8dzoaDLVJw98Z6h6N89sc1RxW cc9/sjv3PctsKLFNUgBKWaRduLxW3K7i4 8n/RXZHkQ1SXV1dOCzFC/aRTPFqfbyZNM2ntDQfF6BwWCo5ICW31WEW68Xt9JwvDC7fk42l uIhPdkGRK0TThJfbY8jFJLRNnVH1CdfxkUyDgwL9/fyOHjni6eHh5uLq4uzs5OjoYO9gd9jO7rCdnZ29vZ29vZ2D3WH 7w7Z2h20pkwpkamdvZ 9g7 Dg4ODo6Cj4j6Ojo5Ojk7OTs4uzq6urm7u7h4eHwKe voFBwWHh4VHRMfG8hKTk5NS09MzMLEqmuSfenkz3CWRqyJQpbd cSkQJl3oN8ijJ9MjhFAp05cyb6F90go9QBlSqyg4q5BxXZkcps R0VZP60d1cHB4fz587q6umpqasrKysrKyioqKioqKlMoVCmmCj Nt2rRp06ZNJ5hBoaGxAI8FCzSZQ1NTS/LQ0lpIDjOVv27 RjD0/v5XPeW/bVWeuFXlK/0pXxmofm0wbbLhNEWj6YpGM74xnvmN6cy/m85SNp2lbDpLZdssFVM8ZgtuGM9SMRH 0niWitEsZcOZygYz/q4//Zut0xS3TFPUU528ecqkTSpfb1SeuFF54h415YAtayoqKqKjo12 EefjwoViZ0jY3wTJd53p9 eGKxTZXNC1LNC1L Hx bW0tX9Aa1YQL tinuGOfedEFCRdjuCcK5GVsUuF1paJzfDRnimtQUshUtEnFVZn EBaSSt9TDSFh9T5sqpWX3pEZxWEqm9sy9oASrniIjw1DNPTjI3 8/P5 hRL09Pdzc3VxcXZycnRwdHlMg72DvY2zlQN zt7Rwc0MBBq4Ojo4Ojvb2Dg CmACcnJxSpurq6unt4oOj0qI9vQGBQaFg4hxuFCvqpqWkZmZnH jh3LycmhpkyF1inIMzLduWu3gaHh g0bRcpUslXJ/0UugsIynTNnDo5MkUNnzJgxk0DKKBX/IKZSmeV 2p5 ZIgqUqn6 vpubm7nz5 nXSODucs7c0/3aoIaUYjcqrhOFPWDZDhbepI0DpKEhAQqHRtIpuImTyWDd4rC8 SkZopKLoIYGeX0eWt0JmxTty0fbRwrJFP06pEyJZfukSYsvXhS 9nElcKCpSo KqTLSl92R2L3IBPs7xRXaSSpgnJTcnJUv5kZGR4eFhggJUQICf r /RI0e8BEUnpFRnJycnZydnZycXZ2cXVH1ydnJ2cXJxEVSfnNGkq rOzM0ryBbg4O7s440QfRaZe3t5Hjhz18e2XaWxcfGJSUkpqanp GBmqNysk5nksg/8h05y4zaWQqTqm0B9DWQTFlin1KWpWmVHFzqQM2pTKVSm6Vwlw xJaEdFW/lJ24fP/JqKLRLoezbt8 awMbGxsbGZv/ /fv37/ O4sCBAwcOHDhIcYjCVpjDBHaisCdwEI jRJwYOEuHJJmKLOiT T7eGZrcVB/vYSpy5z0yUJXmYmTi6OjowI2ltL34kElxkylpUixToQLUQDKVU KxnLgllTo9KcwUnCQvwcTsUWb4X1wIlMsEnd6DA1aeoqChOJId a3RQaEhwcEBDg5 vr6 PjcxQ1k3q4o3qSu4eHh6eHh6cnNbw8vbw8PT09PT2EHkPhKRi4 BuWFEvyjR339/Pz8AwKDg8PCI7hRqNU0KSU1NT0dyZQKTYXDc/lGpoOQKVOpNJOSwSnyKU7zsUkROC8erFJpib U5X5m7xRtIhVv5cfcJ4V2gSmRV0OR3qdYqQcoJPuUVOrI ZSp1EH5dGCZilMq2hwaJwISNjPFVsXh6pBBTyJuo2gUkGKT0nJ 8HJkyZYqWk6KWUqZJJcyN0kJRZqFJXDSKxSGuRZ s44tL8EVecUTkRUcImUZzOJzIyMiI8PCw0FDBSqegIEGPvp fn68vWuHk64NaTv38qOGDVkDhQcC4wwf19KM6PmqNCgkNjYjkR EXHoEWlKSmpaenpWajXlKrp0y7EIv/IFPWZSiNTCUol10HRavo0k2Kf4qlGKRN/CUunmBOp4gpTEtpRxW3lJ25fVJEhKvKplZWV5BCV5T6VUqnDki lts33kU6RUPCeCJzXwZvtYr0MAfTsSKOlQvN8 vvoemu7BV9wjpy YO/AzZksvXbhwccDuUVooiqNRCXm9yMs30a4 QrsACa0dilm7p82T0ir45LWb0HalaJ89tCo/nFpMKgAtXQoJCQkOCQkOoREcFEyOoKAg9K9k0LootFA1IjKSGx UVExMbz MlJiYmJyenpaVlZGRkCTJ9onVfvjJFkam wVBkSlqVJlMyMsU1fRScMiNTkUolK1RSKlWaiVQJ 6TQ2vvxPin4gig0n5Ih6kik/IP16dtN QeeMyV9eo1xCRPmRUlp14BCuf8QppaZ4Flq8lp7ZDRKXrsUN0W RMiXTfLyiFMmUCksvXrx4sajogjQBqcikXkJeL/LyTbQF Mz9nmkdUTSTMsNSsktfWKaxgh1LuVw0cyrYlYTajgTtxEdtY0p tWYKW1gtGhGBLPmpjFKmgfkwUWpwfG8fjJWCZpqdnZGVlZRM JTd2kWdkqm9guE5MNX8IkHvxkTV9WqaPHcosiNMqVIOaSxWnVL LWL27FFFaqhMug0mZRRab85NVPB5XyDziFKp8QdQg FVvNF lTkVEq7cp6zCs8M8t84qp 5AOY34IhLwrNdCi CjSeLWWm bQcnyzio7B0wO5RcXOj5HKmAU2KBUpm98JS6I9MyZVOtKlSMiD FOT4pU8Eu mgfaMFFR/CWTtEx0TGxxP6/wtd6EnxjDL4l2Eya3ESY3GQaw40S7BcleBza2hRtv5 UlJSckpKampqenp6JLnJP ZT8uyJDmaamZaQMFJlimaIto4bsUKQ2ZlmfGZySAp1GIX3ij1d PDWoidcDeKWZhirZJCm2raaxUWsrP9CmZ8ttQjJmUfygylTCFS l7wGQeq5FVLxXVXkDAfUyUMbtcgBYqpFAZHpteEC1A4x0e9 limRUUXCguLBgxIJZSYpAlIadOjzAs1M5c8IZ KqzvxGJBXxxOSqRDRMTEx EJ4tLKVOOLEECsRvBl7QoLQ5UuRE5FPqX1PBCU4qo1hZGXKjEz RllFYT0PzKbnZvsiyPjMynUYwKKUOWO6nLe0nN0gVGaKSvVOyC lH3Ucgn5bcXRg4hqqQ 076 vh/E8FAU5K5cj8Tz0zAgn0fytmAI8uWRr//BgwcPHjxAm62gRazkMgGyp1Vkhxbe9h 3aomE2YeAkf4ygmTlTcIFXJsY0DrjGhoaxbXXDXY2m/mzpId8HrIsKeEgtNLpPyzijx4ebW1tba1tba2tbS2tbc0trY3N LQ2NzXUNTdU1dTdvVV27XlleXlFyufTChYvnzp1DG8uSm84ME2 bLF/kHlfmnlPn3lfY3BkE D55rxj IfAHo7zr6S0 78ih5nVEUJaCgAQUQ5DWfUf2AvLwzXiLYv1UlccU02jXW8DWA8 dxaOYMKYa4KIzm2Y0Z4ImFer15KKkVRUlIirUz7 voSExMNxgf6 vr6 vpo0n3Llq1bxhx4BeFmAXqo0oD L4o79PXf9ttAgd8O9Mppr1l492IpfvctW/T0tmzW26Krt2WTrt6GTbrrN2xau37jt6vXLl2 QnvxkgWaWvPmqc aPXvatOkqKip///vfv/nmGyUlpckAIB53d3eaT8XK9IcffjAwMHgFAAAAMJg8eXJlZaVU 1XyQKQAAgDiQTMkpVLF9piBTAAAAcWCZYp8KyZSczQWZAgAAiI OUKQJkCgAAMGgGkCnZXgoyBQAAEIeiouL169dBpgAAAMNCUVGx srKSbOyHaj4AAMCgIWWKfAp9pgAAAIMGydTJyQn7FGQKAAAwaP Cc6QAyhTQfAABAAjgyFVGA u2338itPx8 fAgyBQAAEAmSqejlpL/99huZ5oNMAQAAxCFJprQ5U5ApAACAOJSUlCorK0Vf6hml RiQKQAAgDiUlJRu3Ljh6uqKrm3u6ur6448/gkwBAAAGB5Kpm5sbMqmbm5uQTMl9pH/88UeQKQAAgEiUlJRu3rzp4eHhTiEk0xsEIFMAAABxKCkp3bp1y 4MAZAoAADBokEy9CB49etQvU/Ian48ePQKZAgAAiERJSen27dtHCIRkeosAZAoAgDT4h0SPoiGr 31pJSamqqsqHoF mv// 20C6WX61o/OoEZHZ3dZReWpMxdgwBi5UVZR2dHZLavPLcvxD4l M0qQrUzv3Lnj5 fn6 vr5 fn5 f3008/9cu0iuCnn36SXqZv xBJi39I9A8Pnz198eptvxBgjPP0xaue z/J6nPLckaXAWT1WyspKVVXVwcEBPj7 /v7 wcEBAjJ9A7BGJbp234VwLgAZMpCZCvTmpqa4ODgIIrHjx/3y7SGorq6 vHjxyBTABgy41amxdYKAqyL39bBF4dsZVpbWxtK0C/TP/74o7a2Fvt0mDIttlZYHN0j/4MlGZApIDfGqUx7ohcLPvn9t9iDbGVaV1cXERERHh4eHh4eERH x5MmTfpnW1dXVUjx58mToMu2JXqwwCmQqzZ/Q0fgYgA2MU5kWW Mzk7jJFmQr0/r6ei6Xy6EQkmk9wTBk2hO9eLG1Nfv KtFkKs2f0NH4GIAdjE ZkuclC89R2cq0sbExmuDp06f9Mm0kePr06RBlWmytYF3MwuP4h iZTaf6EjsbHAOwAZMpCCchWpk1NTfEEz549E8j0H//4RxPBs2fPhiRTwWechcfxjbBMpXnXR NjAJYAMmXhKSpbmTY3NycSCMm0heD58 dDkCk fCw8jm9ApoAcGZ8yZXnyJFuZtra2pqampqSkpKampqamPn/ vF mrQRDkmlP9GIFErZ92kGmgNwYpzJl97S bGXa1taWQfDixQuBTP/5z3 2U7S1tQ0tMsWw8UDCnCkgR8apTNndcCJbmXZ0dGQTCMm0s7Ozg LFixdjXKZsq8JDNX9sMW5lymZkK9POzs5cgpcvX/bLtLu7u4vi5cuXY34FFONPqIhobzQ BmADIFMWIluZdnd35xP8/PPPApn z//8Tw/Bzz//POZlyqDYeuBobzQ BngLgExZiGxl2tPTc5bgl19 6ZdpH0Vvb 8vv/wy/mQKADIDZMpCZCvTvr6 iwSvXr0SyPRf//rX/fv379 /j3z66tUrkCkADJnxLVOWzj7JVqb379 /fPlyCcXr16/7ZfqA4PXr10Nt2mdtZxTIFJAf41WmuD9y7Mv0wYMH5RQVFRW//vprv0wfPnz48OHDH3744YcffhiGTNl4EBGiZDrAC2bbJiZs7js BSMarTBEs9YBsZfrw4cPr16/z Xz072 //SaQ6b///e9Hjx79SPHrr78ORabs7tgRlqkUf0LZ1vYErVGjB5DpmJfpo0e PyOvmCcn08ePHP/300 PHjx8/fvz7778PUaasTfKHEJmyrSEfmvZHDyBTFp6espXp48ePqylqam p //13gUz//PPPpwR//PHHUGTavyl0T/Ri1h3OwcqUbUtFYTnpKAJkyrJP/5s3spbp06dPGwj OOPfpk IxiiTAlY GkHmQJyA2Q65mX67Nkzcqe9f/zjH/0yfU4AMn3DPlGCTEcRINMxL9Pnz5/jnaHa2tqEZPqC4B// MfQtuAjljmy7sMOc6aA3ACZsvD0lK1MX7x4gXaGQvuZ/POf/ yX6UuCocn0DdG7wzqVDkGmbKvUQzV/9DC ZcpSZCvTly9fdlJ0dXWJlumQI1OWM5BMR8EmJrDRyWgBZMpCZB 6ZdhD0y5S8bEljY NQL1vCamCjE0BugExZiMyvAcUj6L9sya //nr16tWKioqKioqrV6/ 8MMP40 mACAzQKYsRLYyvXr16kEKW1vbH374oV m5QQPHjwAmQLAkBm3MsUzUSycfpKtTCsqKvbv329jY7N///79 /c/ePBAxjJl aEEmQLyYZzKtL Lh42z TKXqQ3FCMiU9YcSNjoB5MM4lSlxAFjYcCJbmZaXl9vY2FhbWyO fipBpWVlZWVnZsNN8lh5K2OgEkA/jXaZsXE8ue5laE4iOTGUgU7YeSmjaB TDeJYpilNYeH6OqEy///57ETK9cuXK999/P2SZsvlQwnJSQD6MZ5miA8DCeErmMt23b5 VlZVYmaI0fzgyffPmDWsPJcgUkA/jXqZsPEVlK9OysrJ9 /Yhn1pZWdFlWkYxbJmy9FCCTAH5MD5lSsRQLA2nZPVbkzJFPhWS KTbpkNN89h9KmDMF5MP4lOkb1u/OIavfGsnU0tJy7969e/fu3bdvn4xl ob1hxI2OgHkw7iVKZuRrUyvXLliaWmJfSp7mbIZ2OgEkBsgUxY yEjK1sLBAPu2X6evXr5FGEeNGpiRs26AENjoZxYBMWYjMZWpBY WlpSZcp9um4lCkAyAyQKQuRrUxLS0v3UFhYWIiQaWlpaWlpKcg UAIbDuJUpm1c8j5xM9 zZc// /X6Z4hx/2DJl6UQeyBSQG NTpuzv55HVb41kam5ubm5uLlamKDK9f// kGQqxYL3twdNplL/CR1lm6EAbGB8ylToCLCv42QkZGpmZoZ8KiRTnOMPQ6aI0RCZSt VmNAo3QwHYwbiX6diPTC9fvrx7924zMzPkU3pkOo5kOogG FHV2A wg3Eu057oxSxsNR8JmSLMzMxEy/Ty5ctjXqaDWZo5mpacAixhPMuUnSZ9I2uZlpSU7Ny5c9euXcin IFP6bVGATIFBM25lylqTvhkZmWKfCskUm7SkpARkSgAyBQbNOJ VpsTWba6Myl n27dt37NiBfEqX6WWKMS9TmDMFRpTxKdP bhNWbtAhW5kWFxdv374d 7Svr69fppcJxr5MB1EZH1WboQDsYHzKlOWMhEy3bduGfCokU5z jDzvNZykD9ZmKk Yo2wwFYAMgUxYic5mampqampoin4qITMePTBmwbYMS2OhkFAMy ZSGylemlS5dMTEyMjY2RT kyRSYtLi7u6 sbfzIFAJkBMmUhspXpxYsXjSlMTU1FyLS4uBhkCgDDZJzLtNia ddWnNyMgUyMjI0NDQ2NjYxMTk97e3n6Z4rB0ODJl8 JxkCkgN8a1THuiF7OvlP9G1jK9cOGCgYGBgYGBkZGRsbExXabI pJcuXRqiTNldbh7CRiejcTMUgA2MY5n2RC9ebG3Nvs//CMhUX1/fwMDA0NDQyMhIhEwvXbo0dJmyuxFy0K1Ro3EzFIAdjF ZFlsrWBez8wSVrUyLioq2bt2KfSpaphcvXuzt7R3a1UnZvERn0 E37o7GxH2AH41WmghOThR//NyMg0y1btmzZsgX5tF mr169Qjn xYsXx4NMZb18ky1LTgGWMD5lik9Ldp6fspVpYWGhnp6enp4eik/v3bsnJFOU44NMpX8MBcgUEGJcyhRPeY2L5aSFhYWbN2/evHkz8qmQTJFGL168eOHChaHJlOV5KMgUkBvjUqbEr8/K81O2Mj1//vymTZt0dXV1dXX19PREyPTChQtDlym7KyQwZwrIDZAp6z7/IyDTjRs3bty4UVdXd/PmzUIyxSYtKioaokzZ3bszMtV8BGs2QwHYwTiXKTuRrUzPnTu3 YcMG7FMRMi0qKioqKrp3796YXwEl041FWLQZCsAGQKYsROYyXb du3fr16zdu3Lhp06aenh4RMi0sLBwPMmXAtg1KYKOTUQzIlIXI VqZnz55du3Yt9qmQTHGOP15lCgAyA2TKQmQu0zVr1mCf0mWKcv zz58 DTAFgOIxXmZJ77bMuaZKtTM cObN69erVq1cjn969e7dfpsikhYWFhYWFPT09Y7wABQAjyTiWK fs RSylenp06e//fbbVatWIZ/SZYpMev78 aHJtCd6MXUkiZusYQgbnVAPHO4mJtI8j0x/FvCWGacyZXebyUjIFPl0zZo1IiLT8 fPD1mmJCw8qoO/BpSMNjGR5nlk9rMAVjB ZcraJF/WMj116tSKFStWrlyJfCo6Mj137tywZcr6yFSeDfnSPI MfxbwlhmnMu3fFJqlBpDVb41kunz58uXLlyOfdnd398sU5/jDj0x7ohez8A/TYJeTUgx3qag0zyPrnwW8ZcapTMkjwL5TVLYyLSgoWLZs2bJly 5BP 2X6yy /YJMOMzJlp0nfgEwBOQIyZeEpKluZ5ufn6 joLF26dNmyZStWrBCSKTbpcGTKWpO AZkCcmR8ypTI7dl4FSiZy3TJkiXYp3SZIpOePXt2iDIttmZzmR nmTAG5MT5l oZoOGGdSkdAposXL8Y FZIpNumZM2eGJlOyYZeFR3Pw1XzEsDcxkeZ5ZPyzgLfMuJUpm5 GtTPPy8rS1tbFPu7q6hCLTs2fPDkemLGcIG50w7h/BzVBk rOAtwzIlIXIXKaLFi1atGgR8qmQTHFYeubMmbt37455mTJg2wY lsNHJKAZkykJkK9OTJ08uXLgQ 1S0TE fPj0uZQoAMgNkykJkLlNNTU0tLa1FixZpa2sLyRTn OM1MgUAmQEyZSGylemJEyc0NTWxTzs7O4VkeoYCZAoAwwFkykJ kLtMFCxYsWLAA VS0TCHNB4BhAjJlITKXqYaGhoaGxoIFC0TL9PTp0yBTABgmIFM WInOZzp8/f/78 cinQjLFJj116hTIFACGA8iUhchWprm5uerq6urq6sinImR66tS pU6dOdXd3g0wBYMiATFmIzGU6b968efPmIZ92dHSIjkxBpgAwH ECmLES2Mj1 /Pi8efPmzp2L4lMhmZ6mKCgoAJkCwHAAmbIQmct0zpw5c fORcGpCJlCmg8AwwdkykJGQqZqamrIp/0y/fnnn7FJQaYAMExApixEtjLNyclRU1NTU1ND8amQTLFJIc0HgGE CMmUhMpfp7NmzZ8 ejXza3t5Ol2lBQQHIFACGCciUhYyETGfNmoXiU5ApAIwIIFMWI nOZzpo1a9asWSg4pcu0gAJkCgDDAWTKQmQu05kzZ2KfCskUmzQ/Px9kCgDDAWTKQmQr02PHjs2cOXPGjBnIpyBTABgRQKYsZIRkiu JTETLNz88HmQLAMAGZshCZy3QGxcyZM kyzacAmQLAcACZspCRkOn06dORT9va2vplmk8AMgWA4QAyZSEy l l0Ckky7erqApkCwJABmbIQ2co0Ozt7YJnm5eWBTAFgOIBMWYjM ZTpt2rRp06Yhn4JMAWBEAJmykBGSKfKpCJnm5eWBTAFgmIBMWc hIyHTq1KnIp3SZ5lGATAFgOGCZZl1tM4m6ouNTOJaGSdSVrKtt o9EAIyFT5FMhmeYRgEwBYDggmWaUty6Pr1xb 3p9159jaaytfb08vjKjvHXUGWCEZDp16lSQKQCMCEimhtzStXW vD/T 69exxYHef62te23ILR11BpCtTKcSgEwBYERAMtXxKVzf efbVt IsL7zTx2fwlFnABnKNCsra rUqaqqqiBTABhBSJm HouATLOyslQpQKYAMFKATFnIyMlUVVUVZAoAIwIpU1l9gFkFyB TJdMqUKSBTABhBQKYsZIRkinza2toqQqYnT54EmQLAcMAyXdfx 71/GIus6/g0yxTKdMmVKv0xf/vzzybw8NE6ATAFgeIBMWYi8ZPry5cmTJ0 ePHnixIkTJ06ATAFgOJAyfTkWAZkOINMTFCBTABgOIFMWAjKVG SBTQG6ATFmIPGSqpKT08uXLXILOzk59fX2QKQAMDSzTtR3/eiFbagI1FQSY5cn4uaVnbce/QKZiZZpz/DgeHZ2dW0GmADBURkymeWYKmoE1L168QFaVqNOaGx/bvgAACKRJREFUQE3qsTIHZCpWpi9evjyWk4NHR0fH1q1bQaYAM DT6Zdr r cypDpQUzOweiQePEjWtoNMs6YQEDJ98SL72DE82js6toBMAWCo jJRMn1cHairQDVmNE3 zPPSlppkZngsYGZ CTCXKlKC9vX3Lli0gUwAYGlim3zb/0Stjrh6ZjzQ5/8hVwZfb03v7b109Mh/9r6tH5qOHjADfNv8BMp0yZYqKioqKikq/TBUVFV 8eJFFADIFgOEwkjKlSN uMP/IVdKY6Da B2QqDMhUZoBMAbmBZbqy6feekSJtm8K2tHIvdXWvcnQHuo3vIf XrFnZ9DvIFMtURUUFZAoAI8IIybTcS11hW5rgi7RtCupe5cR9g lsgUzGATGUGyBSQG6RM78qUNFOqsqRgmobuKvNSR3eoe5WhL9E NwWOph8kUkGlWVpYKAcgUAEaEkZMpSwCZgkxBpoA8wDJd0fRb1 1hkRdNvIFOQKQCMOCBTFjISMlVWVlZWVgaZAsBIATJlISMnU2V lZSGZZmZl4QEyBYDh0C/Txt86xiIrGkGmEmSamYUHyBQAhgPIlIWATGUGyBSQG1imyxt bRuLLG/4FWQqVqYZmVl4tLW364FMAWCogExZiJxk vzFi/SMTDza2tr19ECmADBESJm2jEVAppJkmpaRiUdrW/tmkCkADBWQKQuRh0wnKyo f/4iJT0Tj5a2dl2QKQAMFSzTZfWvm8ciy pfg0xFyXSy4vPnL5JTM/FoaW3X3QwyBYAhgmRqyC1dduPpzvpnjWOLnfXPlt14asgtHXUG GHGZTpqs Oz584SUdDyaW9o26uqBTAFgaCCZZpS36sTwl958urT 1ZgaN5/qxPAzyltHnQFGXKZfT5r89Nnz2IQUPBqbWzZs1AWZAsDQQDJ99 epValmLfuRlHZ/CsTT0Iy nlrWMRgOMuEy/ nrSk6fPONE8POobmtau3wgyBYChgWU65hldBpDVby1WphMnfvX 48ZOgMA4e1bX1q1avHXuHEmQKyAeQKQuRh0z/ te/PXr0k7dPAB63qqqXrVg59g4lyBSQDyBTFiIPmX7 xRcPH/7o4OSKx/XKG9qLdcbeoQSZAvIBZMpC5CHTv3z22fffP9hnvR PsvIKjQWaY 9QgkwB QAyZSHykOknn3zS19e3bcdOPIpLSubMmTv2DiXIFJAPIFMWIg ZfvTRRz099/T0tuBRVFQ0Y8bMsXcoQaaAfACZshB5yPSDDz64e/fumjVr1qxZi8bZs2dVVVXH3qEEmQLyAWTKQuQh0/fee6 rq2sZwalTp5SVlcfeoQSZAvIBZMpC5CHTCRMmdHZ2amtra2trL 168ePHixfn5 d98883YO5QgU0A gExZiPxkqqWlpaWltXDhwoULF bl5SkpKY29QwkyBeQDyJSFyEOm7777bmdnpyaFlpbWyZMnFRUV x96hBJkC8gFkykLkJNOOjo4FFJqamidPnpw8efLYO5QgU0A gExZyFuQ6YIFC0CmADAcQKYs5O3I9MSJEyBTABgyIFMWAjKVGS BTQG6ATFkIyFRmgEwBuQEyZSEgU5kBMgXkBsiUhYBMZQaS6dMX r972CwHGOE9fvBpXMh1FQ1a/9UjJdBSN589/fvj0FxgwRno8f/6zrD63AAsZEZkCAACMN0CmAAAAMgBkCgAAIANApgAAADJgAJlq aGiATAEAAAZEUVERZAoAADBcQKYAAAAyYGCZIkCmAAAAElBUVM zMzASZAgAADAtpZaqhoQEyBQAAEAeSqTIByBQAAGDQgEwBAABk AMgUAABABkyePBlkCgAAMFxApgAAADIAZAoAACADQKYAAAAyYP LkyWgFFG41FStTHo 3e/fuyQAAAAADU1NTLpcrWqatra2kTG1sbHg83gmpOSkXpH89IskV xXFR5IjnmHiyJZIlUzIHD/NJ0AtDL572a9IOiMhDl5ubO5y3Q8p3Gb9N5PEfiUMqGclv7mDf iG8fWyAdkDwaUOeJMM5Jd46IuVAfvbxG8rlcnft2iVCpu 8805gYOC2bds0xLBAOjRHHgk/XdyL19DQmE gTjGPYi7BHAo1gtmzZ8 ePXsWwUyKGTNmoH8x0wmmCTOVQFUKpgyEyiBB34WeHL2MadOmT Z8 Hf0Ws2bNQr8p q3RcUCHZZ4w6gTzhZH FJLmXUbvHXqz0Jsye/ZsdMDR4cVHUvKBkuZok0wVwzTxTBcD dbTXudg3z5y8aL8wacQOj7oV0anDTpb5s6dS54SEj6PI838YUD 6ATsBnXjogz99 nTaWaeiorJx48bAwMB33nlH4YMPPvjyyy8LCgokvL4xLFORPmX KVKRPZzAQ VliylQan8pHpkyfMmVKU6oEmQ7Kp9IoVYPhU3TwZ8yYQUpK8uF 66zIV VKHINO3qFTyLKL5FJ0zc bMQefGmJEpzae0Ew /lSoqKjk5OV9 eWECRMUPvroowkTJoSGhvr5 Ul4iez3qTilijtetEM2tOCUqVQJwSmp1OHLdGgfSKZPsUwl 1RccEpT6mBPoQFlit5B9DbNmTMHvRGDDU4HpVRxMpVJcEq 1FEkU1KppE9nzJiBzxn2 FRjGEql QE7AQenpE nTJni7u4eGho6YcKE999/X GTTz758MMPkU8LCgp27twp8sVJI9O37lNpjixTpjSfMuNTCcGp ZJlKTvaHr9ShyVTmPqWdjuLehcGeMPg9nU8Fp3Pnzn27yf54Dk 6VheNT8sxB5ww6VVjiU1nJFPuUluxPmzZty5Ytx48fRyZ97733 PvroI4W//OUv2KdffvllQEBAx/DoHGGG fLE0T542oZN69uG ZIk/L4jdOQH9V6LO/hyODKyQuYv9W0h7rQZofPkLSLyUx8QEICy /fee /DDz/8 OOPFT777DPk0w8 OD9999/FwAAAJACHJN /PHHn3zyyf8H7dJ9h6tqxPMAAAAASUVORK5CYII=

RmeXXXXXXXXX
یک شنبه 24 خرداد 1394, 22:40 عصر
اینم تصویرش:
132251

RmeXXXXXXXXX
دوشنبه 25 خرداد 1394, 15:10 عصر
اینم کنسول:
تابع sort دو آرگومان میگیره: یکی لیست فعالیت ها که باید مرتب شوند و دوم لیست (آرایه) ماتریس وابستگی.
متدpidaKardanVabastegiha میاد و برحسب فعالیت و ماتریس وابستگی تعداد فعالیت های وابسته رو پیدا میکنه! شاید هیچی شاید هم 3تا-- خروجی از نوع لیست عدد می باشد.
متدAyaVabastegiVojoudDarad بررسی میکنه ببینه آیا حداقل یکی از وابستگی ها (که در متدpidaKardanVabastegiha بدست آوردیم) در لیست وجود داره یا نه؟ اگر وجود داشته باشه مقدار true برمیگردونه.

class Program
{

private static void Main(string[] args)
{

int[,] matris =
{
{0, 0, 0, 0, 0, 0},
{1, 0, 0, 0, 0, 0},
{1, 0, 0, 0, 0, 0},
{0, 1, 0, 0, 0, 0},
{0, 0, 1, 0, 0, 0},
{0, 1, 0, 1, 1, 0},
};

List<int> operationsList = new List<int>() {4, 5, 3, 1, 0, 2};
Console.Write("Operation list:\t");
foreach (var item in operationsList) Console.Write(item.ToString() + ", ");


var sortResult = Sort(operationsList, matris);//sort your info

//print info
Console.Write("\n\nSorted operation list:\t");
foreach (var item in sortResult) Console.Write(item.ToString() + ", ");

Console.WriteLine("\nPress any key to exit...");
Console.ReadKey();
}

private static List<int> Sort(List<int> operationsList,int[,] actionMatris )
{
var result = new List<int>();
while (operationsList.Count > 0)
{
for (var i = 0; i < operationsList.Count; ++i)
{
var operationValue = operationsList[i];
var vabastegiha = pidaKardanVabastegiha(actionMatris, operationValue);
if (!AyaVabastegiVojoudDarad(operationValue, operationsList, vabastegiha))
{
result.Add(operationValue);
operationsList.Remove(operationValue);
break;//az for kharej shodan.
}
}//next i
}//loop
return result;
}
private static List<int> pidaKardanVabastegiha(int[,] actionMatris, int operationvalue)
{
var vabastegiha = new List<int>();
for(var i = 0; i < 6; ++i)
if(actionMatris[operationvalue, i] != 0) vabastegiha.Add(i);
return vabastegiha;
}
private static bool AyaVabastegiVojoudDarad(int operation,List<int> operationsList , List<int> depency)
{
if(depency == null || depency.Count == 0) return false;//short circute answer
var query = from d in depency
from op in operationsList
where op == d
select op;
return query.Any();
}
};