الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

نتيجة السؤال التاسع -9-

بدأه أحمد أبو عبد البر في 8 نوفمبر 2013 · 4 رد · 1,729 مشاهدة · في المسابقات البرمجية
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

سلام عليكم

 

كان السؤال التاسع هو

 

 

سلام عليكم

لدينا المصفوفة التالية

24 55 58 05 66 73 99 26 97 17 78 78 96 83 14 88 34 89 63 72
21 36 23 09 75 00 76 44 20 45 35 14 00 61 33 97 34 31 33 95
78 17 53 28 22 75 31 67 15 94 03 80 04 62 16 14 09 53 56 92
16 39 05 42 96 35 31 47 55 58 88 24 00 17 54 24 36 29 85 57
86 56 00 48 35 71 89 07 05 44 44 37 44 60 21 58 51 54 17 58
19 80 81 68 05 94 47 69 28 73 92 13 86 52 17 77 04 89 55 40
20 69 36 41 72 30 23 88 34 62 99 69 82 67 59 85 74 04 36 16
20 73 35 29 78 31 90 01 74 31 49 71 48 86 81 16 23 57 05 54
04 42 16 73 38 25 39 11 24 94 72 18 08 46 29 32 40 62 76 36
01 70 54 71 83 51 54 69 16 92 33 48 61 43 52 01 89 19 67 48
08 02 22 97 38 15 00 40 00 75 04 05 07 78 52 12 50 77 91 08
49 49 99 40 17 81 18 57 60 87 17 40 98 43 69 48 04 56 62 00
81 49 31 73 55 79 14 29 93 71 40 67 53 88 30 03 49 13 36 65
52 70 95 23 04 60 11 42 69 24 68 56 01 32 56 71 37 02 36 91
88 36 68 87 57 62 20 72 03 46 33 67 46 55 12 32 63 93 53 69
04 52 08 83 97 35 99 16 07 97 57 32 16 26 26 79 33 27 98 66
22 31 16 71 51 67 63 89 41 92 36 54 22 40 40 28 66 33 13 80
24 47 32 60 99 03 45 02 44 75 33 53 78 36 84 20 35 17 12 50
32 98 81 28 64 23 67 10 26 38 40 67 59 54 70 66 18 38 64 70
67 26 20 68 02 62 12 20 95 63 94 39 63 08 40 91 66 49 94 21

الأعداد المكتوبة بالخط  العريض تمثل إحدى الطرق  الواصلة بين الأعلى و الأسفل (انظر في هذا الملف المرفق )

 

بالتأكيد يوجد الكثير الكثير من الطرق ولكن واحدة فقط هي الطريق الآمنة

 

الطريق الآمنة هي التي يكون مجموع أعدادها هو الأكبر من بين سائر الطرق

  

المطلوب منك معرفة مجموع أعداد هذه الطريق

 

ولمن لم يفهم السؤال فسأعيد صياغته بطريقة أخرى

نريد أن نعرف ما هو أكبر مجموع يمكن الحصول عليه من جمع عشرين عددا متتاليا من الأعلى إلى الأسفل

الأعداد المتتالية نزولا هي مثل التي في الملف المرفق

 

وكان الجواب هو 1667

 

أجاب عنه كل من

مصطفى

العمدة

zaraki_kenpache

تم تعديل هذه المشاركة بواسطة أحمد أبو عبد البر في 8 نوفمبر 2013 في 17:05

vVIfFr.gif

مدونتي



إذا رأيتموني غبت فأطلت الغياب فربما أكون قد انتقلت عن الدنيا إلى الآخرة

فما أحوجني إلى دعوة صالحة من أخ لي كريم

 

http://www.tvquran.com/

 

LoGeCom

أول برنامج عربي للمحاسبة والتجارة وإدراة المخازن يعمل على اللينكس والماك والويندوز 

#2
<?php
$all=array(24,55,58,05,66,73,99,26,97,17,78,78,96,83,14,88,34,89,63,72,21,36,23,9,75,00,76,44,20,45,35,14,00,61,33,97,34,31,33,95,78,17,53,28,22,75,31,67,15,94,03,80,04,62,16,14,09,53,56,92,16,39,05,42,96,35,31,47,55,58,88,24,00,17,54,24,36,29,85,57,86,56,00,48,35,71,89,07,05,44,44,37,44,60,21,58,51,54,17,58,19,80,81,68,05,94,47,69,28,73,92,13,86,52,17,77,04,89,55,40,20,69,36,41,72,30,23,88,34,62,99,69,82,67,59,85,74,04,36,16,20,73,35,29,78,31,90,01,74,31,49,71,48,86,81,16,23,57,05,54,04,42,16,73,38,25,39,11,24,94,72,18,08,46,29,32,40,62,76,36,01,70,54,71,83,51,54,69,16,92,33,48,61,43,52,01,89,19,67,48,08,02,22,97,38,15,00,40,00,75,04,05,07,78,52,12,50,77,91,08,49,49,99,40,17,81,18,57,60,87,17,40,98,43,69,48,04,56,62,00,81,49,31,73,55,79,14,29,93,71,40,67,53,88,30,03,49,13,36,65,52,70,95,23,04,60,11,42,69,24,68,56,01,32,56,71,37,02,36,91,88,36,68,87,57,62,20,72,03,46,33,67,46,55,12,32,63,93,53,69,04,52,08,83,97,35,99,16,07,97,57,32,16,26,26,79,33,27,98,66,22,31,16,71,51,67,63,89,41,92,36,54,22,40,40,28,66,33,13,80,24,47,32,60,99,03,45,02,44,75,33,53,78,36,84,20,35,17,12,50,32,98,81,28,64,23,67,10,26,38,40,67,59,54,70,66,18,38,64,70,67,26,20,68,02,62,12,20,95,63,94,39,63,8,40,91,66,49,94,21);
$arrrows=array_chunk($all,20);
$array=$arrrows[0];
$maxs =  max($array);
$k = array_search($maxs, $array);
$sum=$maxs;
for ($i=0;$i<=19;$i++){
$ka=19-$i;
$array=$arrrows[$ka];
$j=$k-1;
$l=$k+1;
$a = $array[$k];
$b= $array[$j];
$c= $array[$l];
$maxo=max($a,$b,$c);
print $maxo;
print "\n";
$k = array_search($maxo, $array);
$sum = $sum+$maxo;
}
print $sum;
?>

هذه كانت اجابتي 

يريت كل واحد يكتب الكود بتاعه علشان نستفيد منه

#3

من أجل الفائدة ...

import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.io.IOException;public class Test {    private static int max(int a, int b, int c ) {        int x = a;        if (x < b) x = b;        if (x < c) x = c;        return x;    }    public static void main(String arg[]) throws IOException {        long start = System.currentTimeMillis();        BufferedReader in = new BufferedReader(new FileReader(new File("/home/ahmed/IdeaProjects/Test/src/array")));        String s;        String[] tmp;        int count = 0;        int array[][] = new int[20][20];        while ((s = in.readLine()) != null) {            tmp = s.split(" ");            for (int i = 0; i < tmp.length; i++) {                array[count] = Integer.parseInt(tmp);            }            count++;        } // end of reader        for (int i = 18; i >= 0; i--) {            for (int j = 0; j <= 19; j++) {                if (j > 0 && j < 19)                    array[j] += max(array[i + 1][j - 1],                                       array[i+1][j],                                       array[i+1][j + 1]);                else if (j == 0)                    array[j] += max(0,                                       array[i+1][j],                                       array[i+1][j + 1]);                else if (j == 19)                    array[j] += max(array[i+1][j - 1],                                       array[i+1][j],                                       0);            }        } //end of first loop        count = 0;        for (int i = 0; i < 20; i++) {            if (count < array[0])                count = array[0];        }        long end = System.currentTimeMillis();        System.out.println(count+" time "+(end-start));    }}

الزمن كان 0.004 ثانية معالج i3

تم تعديل هذه المشاركة بواسطة أحمد أبو عبد البر في 10 نوفمبر 2013 في 00:20

vVIfFr.gif

مدونتي



إذا رأيتموني غبت فأطلت الغياب فربما أكون قد انتقلت عن الدنيا إلى الآخرة

فما أحوجني إلى دعوة صالحة من أخ لي كريم

 

http://www.tvquran.com/

 

LoGeCom

أول برنامج عربي للمحاسبة والتجارة وإدراة المخازن يعمل على اللينكس والماك والويندوز 

#4
العمدة11 كتب:

هذه كانت اجابتي 

يريت كل واحد يكتب الكود بتاعه علشان نستفيد منه

 

<?php
$all=array(24,55,58,05,66,73,99,26,97,17,78,78,96,83,14,88,34,89,63,72,21,36,23,9,75,00,76,44,20,45,35,14,00,61,33,97,34,31,33,95,78,17,53,28,22,75,31,67,15,94,03,80,04,62,16,14,09,53,56,92,16,39,05,42,96,35,31,47,55,58,88,24,00,17,54,24,36,29,85,57,86,56,00,48,35,71,89,07,05,44,44,37,44,60,21,58,51,54,17,58,19,80,81,68,05,94,47,69,28,73,92,13,86,52,17,77,04,89,55,40,20,69,36,41,72,30,23,88,34,62,99,69,82,67,59,85,74,04,36,16,20,73,35,29,78,31,90,01,74,31,49,71,48,86,81,16,23,57,05,54,04,42,16,73,38,25,39,11,24,94,72,18,08,46,29,32,40,62,76,36,01,70,54,71,83,51,54,69,16,92,33,48,61,43,52,01,89,19,67,48,08,02,22,97,38,15,00,40,00,75,04,05,07,78,52,12,50,77,91,08,49,49,99,40,17,81,18,57,60,87,17,40,98,43,69,48,04,56,62,00,81,49,31,73,55,79,14,29,93,71,40,67,53,88,30,03,49,13,36,65,52,70,95,23,04,60,11,42,69,24,68,56,01,32,56,71,37,02,36,91,88,36,68,87,57,62,20,72,03,46,33,67,46,55,12,32,63,93,53,69,04,52,08,83,97,35,99,16,07,97,57,32,16,26,26,79,33,27,98,66,22,31,16,71,51,67,63,89,41,92,36,54,22,40,40,28,66,33,13,80,24,47,32,60,99,03,45,02,44,75,33,53,78,36,84,20,35,17,12,50,32,98,81,28,64,23,67,10,26,38,40,67,59,54,70,66,18,38,64,70,67,26,20,68,02,62,12,20,95,63,94,39,63,8,40,91,66,49,94,21);
$arrrows=array_chunk($all,20);
$array=$arrrows[0];
$maxs =  max($array);
$k = array_search($maxs, $array);
$sum=$maxs;
print $maxs;
print "\n";
for ($i=0;$i<=18;$i++){
$ka=$i+1;
$array=$arrrows[$ka];
$j=$k-1;
$l=$k+1;
$a = $array[$k];
$b= $array[$j];
$c= $array[$l];
$maxo=max($a,$b,$c);
print $maxo;
print "\n";
$k = array_search($maxo, $array);
$sum = $sum+$maxo;
}
print $sum;
?>

ده الكود  - الاول كان غلط

تم تعديل هذه المشاركة بواسطة العمدة11 في 10 نوفمبر 2013 في 15:24

#5

انا لن اكتب كودي لانه احتاج الى ساعتين حتى تنفذ

والخطا كان في طريق الاطول والافضل كان يجب عكس جميع القيم وذلك ب نقص الرقم من مئة مثلا 96 الى 4     و 73 الى 27

والبحث عن اقصر طريق لانه يجعل التفيذ اقصر ب مئات المرات

وبعدها نقص اقصر طريق من 2000

اقصر طريق يساوي 333

2000-333=1667

تم تعديل هذه المشاركة بواسطة zaraki_kenpache في 11 نوفمبر 2013 في 23:39

مواضيع مشابهة