Задания
Версия для печати и копирования в MS Word
Тип Д27 C4 № 11323
i

На вход даны пары чисел. Нужно вы­брать из каж­дой пары по од­но­му числу так, чтобы сумма всех вы­бран­ных чисел не была крат­на 6 и при этом была ми­ни­маль­но воз­мож­ной. На­пи­ши­те про­грам­му, вы­во­дя­щую такую сумму на экран. Если же ее не­воз­мож­но по­лу­чить, вы­ве­ди­те 0.

 

Вам пред­ла­га­ет­ся два за­да­ния, свя­зан­ных с этой за­да­чей: за­да­ние А и за­да­ние Б. Вы мо­же­те ре­шать оба за­да­ния или одно из них по сво­е­му вы­бо­ру. Ито­го­вая оцен­ка вы­став­ля­ет­ся как мак­си­маль­ная из оце­нок за за­да­ния А и Б. Если ре­ше­ние од­но­го из за­да­ний не пред­став­ле­но, то счи­та­ет­ся, что оцен­ка за это за­да­ние  — 0 бал­лов.

За­да­ние Б яв­ля­ет­ся усложнённым ва­ри­ан­том за­да­ния А, оно со­дер­жит до­пол­ни­тель­ные тре­бо­ва­ния к про­грам­ме.

 

А. На­пи­ши­те на любом языке про­грам­ми­ро­ва­ния про­грам­му для ре­ше­ния по­став­лен­ной за­да­чи, в ко­то­рой вход­ные дан­ные будут за­по­ми­нать­ся в мас­си­ве. Перед про­грам­мой ука­жи­те вер­сию языка про­грам­ми­ро­ва­ния.

Обя­за­тель­но ука­жи­те, что про­грам­ма яв­ля­ет­ся ре­ше­ни­ем за­да­ния А. Мак­си­маль­ная оцен­ка за вы­пол­не­ние за­да­ния А  — 2 балла.

Б. На­пи­ши­те про­грам­му для ре­ше­ния по­став­лен­ной за­да­чи, ко­то­рая будет эф­фек­тив­на как по вре­ме­ни, так и по па­мя­ти (или хотя бы по одной из этих ха­рак­те­ри­стик). Про­грам­ма счи­та­ет­ся эф­фек­тив­ной по вре­ме­ни, если время ра­бо­ты про­грам­мы про­пор­ци­о­наль­но ко­ли­че­ству по­лу­чен­ных по­ка­за­ний при­бо­ра N, т. е. при уве­ли­че­нии N в k раз время ра­бо­ты про­грам­мы долж­но уве­ли­чи­вать­ся не более чем в k раз. Про­грам­ма счи­та­ет­ся эф­фек­тив­ной по па­мя­ти, если раз­мер па­мя­ти, ис­поль­зо­ван­ной в про­грам­ме для хра­не­ния дан­ных, не за­ви­сит от числа N и не пре­вы­ша­ет 1 ки­ло­бай­та.

Перед про­грам­мой ука­жи­те вер­сию языка про­грам­ми­ро­ва­ния и крат­ко опи­ши­те ис­поль­зо­ван­ный ал­го­ритм.

Обя­за­тель­но ука­жи­те, что про­грам­ма яв­ля­ет­ся ре­ше­ни­ем за­да­ния Б. Мак­си­маль­ная оцен­ка за пра­виль­ную про­грам­му, эф­фек­тив­ную по вре­ме­ни и по па­мя­ти,  — 4 балла.

Мак­си­маль­ная оцен­ка за пра­виль­ную про­грам­му, эф­фек­тив­ную по вре­ме­ни, но не­эф­фек­тив­ную по па­мя­ти,  — 3 балла.

На­по­ми­на­ем! Не за­будь­те ука­зать, к ка­ко­му за­да­нию от­но­сит­ся каж­дая из пред­став­лен­ных Вами про­грамм.

 

За­да­ча А. Ко­ли­че­ство пар из­вест­но за­ра­нее и равно 6. Числа не пре­вы­ша­ют 30 000.

При­мер вход­ных дан­ных:

5 4

3 2

1 1

18 3

11 12

2 5

При­мер вы­ход­ных дан­ных:

23

 

За­да­ча Б. Ко­ли­че­ство пар N не из­вест­но за­ра­нее и может при­ни­мать зна­че­ния 2 <= N <= 200 000. На вход по­да­ет­ся сна­ча­ла ко­ли­че­ство пар, затем сами пары. Числа по мо­ду­лю не пре­вы­ша­ют 30 000.

При­мер вход­ных дан­ных:

6

5 4

3 2

1 1

18 3

11 12

2 5

При­мер вы­ход­ных дан­ных:

23

Спрятать решение

Ре­ше­ние.

За­да­ние А.

При­мер про­грам­мы на­пи­сан­ной на Python 3.3.

a=[]

sum=600001

for i in range(6):

   a.append(list(map(int, input().split())))

for i in range (2):

   for j in range (2):

      for k in range (2):

         for l in range (2):

            for m in range (2):

               for n in range (2):

                  if a[1][i]+a[2][j]+a[3][k]+a[4][l]+a[5][m]+a[0][n] <

                  sum and (a[1][i]+a[2][j]+a[3][k]+a[4][l]+a[5][m]+a[0][n])%6!=0:

                  sum=a[1][i]+a[2][j]+a[3][k]+a[4][l]+a[5][m]+a[0][n]

if sum==600001:

   print(0)

else:

   print(sum)

 

 

За­да­ние А.

При­мер про­грам­мы на­пи­сан­ной на Пас­каль ABC.

var

a: array[1..6, 1..2] of integer; {ис­ход­ные дан­ные}

sum: integer; {ми­ни­маль­ная сумма}

i, j, k, l, m, n: integer;

begin

sum := 600001;

for i := 1 to 6 do read(a[i,1], a[i, 2]);

for i := 1 to 2 do

for j := 1 to 2 do

for k := 1 to 2 do

for l := 1 to 2 do

for m := 1 to 2 do

for n := 1 to 2 do

if (a[1, i] + a[2, j] + a[3, k] + a[4, l] + a[5, m] + a[6, n] < sum) and

((a[1, i] + a[2, j] + a[3, k] + a[4, l] + a[5, m] + a[6, n]) mod 6 <> 0) then

sum := a[1, i] + a[2, j] + a[3, k] + a[4, l] + a[5, m] + a[6, n];

if sum = 600001 then

writeln(0)

else writeln(sum);

end.

 

За­да­ние Б.

Вы­бе­рем из каж­дой пары ми­ни­маль­ное число и сло­жим эти числа: дан­ная сумма будет ми­ни­маль­ной воз­мож­ной. Если она не будет крат­на 6, то это и есть тре­бу­е­мая сумма и её надо вы­ве­сти. Иначе из какой-то пары придётся взять не ми­ни­маль­ное, а мак­си­маль­ное число. Найдём ми­ни­маль­ную раз­ность между чис­ла­ми одной пары, не крат­ную 6. Если такая су­ще­ству­ет, то, сло­жив её с ми­ни­маль­ной сум­мой, по­лу­чим ми­ни­маль­но воз­мож­ную сумму не крат­ную 6, а если её нет (то есть между чис­ла­ми пары пары раз­ность все­гда крат­на 6), то любая сумма будет крат­на 6, и мы вы­ве­дем 0.

При­мер про­грам­мы на­пи­сан­ной на PascalABC.NET

var

   i, n, x, y, sum, min_r: longint;

begin

   readln(n);

   min_r:=30001;

   sum:=0;

   for i:=1 to n do

   begin

      read(x);

      read(y);

      if x < y then sum:=sum+x else sum:= sum + y;

      if (abs(x - y) mod 6 <> 0) and (abs(x - y) < min_r) then min_r:= abs(x - y);

   end;

   if sum mod 6 <> 0 then writeln(sum)

   else if (sum mod 6 = 0) and (min_r < 30001) then writeln (sum + min_r)

   else writeln(0);

end.

Спрятать критерии
Критерии проверки:

Кри­те­рии оце­ни­ва­ния вы­пол­не­ния за­да­нияБаллы

Про­грам­ма пра­виль­но ра­бо­та­ет для любых вход­ных дан­ных про­из­воль­но­го раз­ме­ра и на­хо­дит ответ, не со­хра­няя вход­ные дан­ные в мас­си­ве. До­пус­ка­ет­ся на­ли­чие в тек­сте про­грам­мы одной син­так­си­че­ской ошиб­ки: про­пу­щен или не­вер­но ука­зан знак пунк­ту­а­ции, не­вер­но на­пи­са­но или про­пу­ще­но за­ре­зер­ви­ро­ван­ное слово языка про­грам­ми­ро­ва­ния, не опи­са­на или не­вер­но опи­са­на пе­ре­мен­ная, при­ме­ня­ет­ся опе­ра­ция, не­до­пу­сти­мая для со­от­вет­ству­ю­ще­го типа дан­ных (если одна и та же ошиб­ка встре­ча­ет­ся не­сколь­ко раз, то это счи­та­ет­ся за одну ошиб­ку).

4

Не вы­пол­не­ны усло­вия, поз­во­ля­ю­щие по­ста­вить 4 балла, при этом про­грам­ма ра­бо­та­ет верно, время ра­бо­ты ли­ней­но за­ви­сит от N, но раз­мер ис­поль­зу­е­мой па­мя­ти за­ви­сит от ко­ли­че­ства точек. На­при­мер, вход­ные дан­ные за­по­ми­на­ют­ся в мас­си­ве или дру­гой струк­ту­ре дан­ных, раз­мер ко­то­рой со­от­вет­ству­ет числу N.

До­пус­ка­ет­ся на­ли­чие от одной до трёх син­так­си­че­ских оши­бок, опи­сан­ных в кри­те­ри­ях на 4 балла.

3

Не вы­пол­не­ны усло­вия, поз­во­ля­ю­щие по­ста­вить 3 или 4 балла, при этом про­грам­ма ра­бо­та­ет верно, эф­фек­тив­но или нет. В част­но­сти, в 2 балла оце­ни­ва­ют­ся пе­ре­бор­ные ре­ше­ния, в ко­то­рых все ис­ход­ные дан­ные со­хра­ня­ют­ся в мас­си­ве, рас­смат­ри­ва­ют­ся все воз­мож­ные тре­уголь­ни­ки, из ко­то­рых вы­би­ра­ют­ся под­хо­дя­щие. До­пус­ка­ет­ся на­ли­чие не­сколь­ких со­дер­жа­тель­ных оши­бок, опи­сан­ных в кри­те­ри­ях на 3 балла, и до пяти син­так­си­че­ских оши­бок, опи­сан­ных в кри­те­ри­ях на 4 балла.

2
ННе вы­пол­не­ны усло­вия, поз­во­ля­ю­щие по­ста­вить 2, 3 или 4 балла, но про­грам­ма ра­бо­та­ет в от­дель­ных част­ных слу­ча­ях.1
Не вы­пол­не­ны кри­те­рии, поз­во­ля­ю­щие по­ста­вить 1, 2, 3 или 4 балла0
Мак­си­маль­ный балл4

Аналоги к заданию № 11323: 11327 Все

Источник: ЕГЭ 16.06.2016 по ин­фор­ма­ти­ке. Ос­нов­ная волна. Ва­ри­ант 41 (Часть 2)