На сайте в режиме реального времени публикуются решения контестных задач сервиса Codeforces.
Загружайте свои решения( здесь ) прямо на сайте. Подробнее. Жду ваших решений
 

По разделам

 

Задача Array 123


Дано целое число K (>1) и целочисленный массив размера N. Поменять местами первую серию массива и его серию с номером K (определение серии дано в задании Array116). Если серий в массиве меньше K, то вывести массив без изменений.

Код (C/C++)

#include <stdio.h>
int main(void)
{
    int a[20],b[20];
    int n,k;
    printf("N: ");
    scanf("%i",&n);
    printf("K: ");
    scanf("%i",&k);
 
    int i;
    for (i=0; i<n; ++i){
        printf("a[%i] : ",i+1);
        scanf("%i",&a[i]);
    }
 
    int i2=-1, len1series=1, lenkseries=0, endkseries, nk=1;
 
    for (i=0; i<20;++i) b[i]=0;
 
    for (i=1; (i<n)&&(nk<=k);++i){
        if (a[i-1]!=a[i]) nk++;
        if (nk==1) len1series++;
        if (nk==k) {
            lenkseries++;
            b[++i2]=a[i];
        }
        endkseries=i;
    }
 
    for (i=len1series,nk=1; (i<n)&&(i<endkseries-lenkseries);++i){
        if (a[i-1]!=a[i]) nk++;
        b[++i2]=a[i];
    }
 
    for (i=0; i<len1series;++i) b[++i2]=a[i];
 
    for (i=endkseries; i<n;++i) b[++i2]=a[i];
 
    for (i=0; i<n;++i) a[i]=b[i];
 
    for (i=0; i<n;++i) printf("a  %i : %i\n",i+1,a[i]);
    return 0;
}

Код (Pascal)

program Array123;
var
 a,b : array [1..20] of real;
 N,K,i,i2,ki,tempi: integer;
 addSeries:boolean;
 
 
begin
 Write('N: ');
 Readln(N);
 
 Write('K: ');
 Readln(K);
 
 Writeln('A: ');
 for i:=1 to N do
  begin
   write(i,' :');
   readln(a[i]);
  end;
 
 
 tempi:=0;
 ki:=1;
 
//в начале в массив b заносим значения из k раздела
 for i:=1 to N do
  begin
   if ki = K  then
    begin
     inc(tempi);
     b[tempi]:=a[i];
    end;
   if i<>N then
    if a[i]<>a[i+1] then inc(ki);
  end;
//дальше заполняем весь массив значениями
 addSeries:=False;
 ki:=1;
 for i:=1 to N do
  begin
 //если значение не из перой серии и не является k-ой серией перенести значение в массив b
   if (ki > 1) and (ki <> K)  then
    begin
     inc(tempi);
     b[tempi]:=a[i];
    end;
 
// если значение принадлежит k серии то добавляем вместо него 1 серию.
   if (ki = K) and not(addSeries) and (k <> 1) then //если задано k равной 1 ничего не делать
    begin
     i2:=0;
     addSeries:=True; // говорим что один раз уже добавили массив
     repeat
       inc(tempi);
       inc(i2);
       b[tempi]:=a[i2];
     until (a[i2]<>a[i2+1])
    end;
 
   //смотрим будет ли следующий элемент из другой серии, если да то увеличивем значение ki
   if i<>N then
    if a[i]<>a[i+1] then inc(ki);
  end;
 
 
 a:=b;
 for i:=1 to tempi do writeln(a[i]);
end.
									




Array. Абрамян
Array 1 Просмотров: 28
Array 2 Просмотров: 19
Array 3 Просмотров: 13
Array 4 Просмотров: 20
Array 5 Просмотров: 16
Array 6 Просмотров: 25
Array 7 Просмотров: 14
Array 8 Просмотров: 18
Array 9 Просмотров: 17
Array 10 Просмотров: 25
Array 11 Просмотров: 20
Array 12 Просмотров: 23
Array 13 Просмотров: 23
Array 14 Просмотров: 24
Array 15 Просмотров: 23
Array 16 Просмотров: 19
Array 17 Просмотров: 16
Array 18 Просмотров: 21
Array 19 Просмотров: 14
Array 20 Просмотров: 11
Array 21 Просмотров: 14
Array 22 Просмотров: 30
Array 23 Просмотров: 13
Array 24 Просмотров: 15
Array 25 Просмотров: 12
Array 26 Просмотров: 23
Array 27 Просмотров: 24
Array 28 Просмотров: 20
Array 29 Просмотров: 19
Array 30 Просмотров: 19
Array 31 Просмотров: 10
Array 32 Просмотров: 18
Array 33 Просмотров: 16
Array 34 Просмотров: 18
Array 35 Просмотров: 14
Array 36 Просмотров: 19
Array 37 Просмотров: 10
Array 38 Просмотров: 15
Array 39 Просмотров: 14
Array 40 Просмотров: 16
Array 41 Просмотров: 17
Array 42 Просмотров: 12
Array 43 Просмотров: 14
Array 44 Просмотров: 12
Array 45 Просмотров: 17
Array 46 Просмотров: 14
Array 47 Просмотров: 16
Array 48 Просмотров: 16
Array 49 Просмотров: 12
Array 50 Просмотров: 15
Array 51 Просмотров: 11
Array 52 Просмотров: 11
Array 53 Просмотров: 19
Array 54 Просмотров: 24
Array 55 Просмотров: 15
Array 56 Просмотров: 15
Array 57 Просмотров: 11
Array 58 Просмотров: 15
Array 59 Просмотров: 13
Array 60 Просмотров: 18
Array 61 Просмотров: 13
Array 62 Просмотров: 15
Array 63 Просмотров: 14
Array 64 Просмотров: 17
Array 65 Просмотров: 16
Array 66 Просмотров: 16
Array 67 Просмотров: 20
Array 68 Просмотров: 12
Array 69 Просмотров: 14
Array 70 Просмотров: 21
Array 71 Просмотров: 15
Array 72 Просмотров: 14
Array 73 Просмотров: 11
Array 74 Просмотров: 15
Array 75 Просмотров: 25
Array 76 Просмотров: 16
Array 77 Просмотров: 15
Array 78 Просмотров: 17
Array 79 Просмотров: 14
Array 80 Просмотров: 16
Array 81 Просмотров: 21
Array 82 Просмотров: 10
Array 83 Просмотров: 10
Array 84 Просмотров: 11
Array 85 Просмотров: 16
Array 86 Просмотров: 13
Array 87 Просмотров: 18
Array 88 Просмотров: 24
Array 89 Просмотров: 16
Array 90 Просмотров: 16
Array 91 Просмотров: 17
Array 92 Просмотров: 12
Array 93 Просмотров: 13
Array 94 Просмотров: 11
Array 95 Просмотров: 11
Array 96 Просмотров: 22
Array 97 Просмотров: 12
Array 98 Просмотров: 11
Array 99 Просмотров: 16
Array 100 Просмотров: 12
Array 101 Просмотров: 14
Array 102 Просмотров: 14
Array 103 Просмотров: 14
Array 104 Просмотров: 11
Array 105 Просмотров: 15
Array 106 Просмотров: 18
Array 107 Просмотров: 11
Array 108 Просмотров: 16
Array 109 Просмотров: 11
Array 110 Просмотров: 11
Array 111 Просмотров: 14
Array 112 Просмотров: 15
Array 113 Просмотров: 23
Array 114 Просмотров: 20
Array 115 Просмотров: 19
Array 116 Просмотров: 18
Array 117 Просмотров: 10
Array 118 Просмотров: 12
Array 119 Просмотров: 10
Array 120 Просмотров: 11
Array 121 Просмотров: 9
Array 122 Просмотров: 31
Array 123 Просмотров: 13
Array 124 Просмотров: 14
Array 125 Просмотров: 19
Array 126 Просмотров: 10
Array 127 Просмотров: 11
Array 128 Просмотров: 13
Array 129 Просмотров: 14
Array 130 Просмотров: 18
Array 131 Просмотров: 14
Array 132 Просмотров: 17
Array 133 Просмотров: 22
Array 134 Просмотров: 13
Array 135 Просмотров: 16
Array 136 Просмотров: 25
Array 137 Просмотров: 17
Array 138 Просмотров: 15
Array 139 Просмотров: 16
Array 140 Просмотров: 16

Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться