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

По разделам

 

Задача Array 64


Даны три целочисленных массива A, B и C размера NA, NB, NC соответственно, элементы которых упорядочены по убыванию. Объединить эти массивы так, чтобы результирующий целочисленный массив D (размера NA + NB + NC) остался упорядоченным по убыванию.

Код (C/C++)

#include <stdio.h>
int main(void)
{
    float a[10],b[10],c[10],d[30];
 
    int na,nb,nc,nd,k;
 
    printf("Na: ");
    scanf("%i",&na);
 
    for (k=0; k<na; ++k){
        printf("a[%i] : ",k+1);
        scanf("%f",&a[k]);
    }
 
    printf("Nb: ");
    scanf("%i",&nb);
 
    for (k=0; k<nb; ++k){
        printf("b[%i] : ",k+1);
        scanf("%f",&b[k]);
    }
 
    printf("Nc: ");
    scanf("%i",&nc);
 
    for (k=0; k<nc; ++k){
        printf("c[%i] : ",k+1);
        scanf("%f",&c[k]);
    }
    nd=na+nb+nc;
 
    int ka=0,kb=0,kc=0;
 
    for (k=0; k<nd; ++k){
        if ((ka<na) &&((kb>=nb)||(a[ka]>=b[kb]))&&((kc>=nc)||(a[ka]>c[kc]))){
                d[k]=a[ka];
                ++ka;
        }else if ((kb<nb) && ((kc>=nc)||(b[kb]>c[kc]))){
                d[k]=b[kb];
                ++kb;
        } else {
                d[k]=c[kc];
                ++kc;
        }
    }
    printf("D: \n");
    for (k=0; k<nd; ++k) printf("  %i: %f\n",k+1,d[k]);
 
    return 0;
}

Код (Python)

import random

def Merge(a,b,N_a,N_b):
    L = []
    i = 0
    a_idx = 0
    b_idx = 0
    while i < (N_a+N_b) and a_idx < N_a and b_idx < N_b :
    ##    print("i:",i,"; a_idx:",a_idx,"; b_idx:",b_idx)
        if a[a_idx] == b[b_idx] :
            L.append(a[a_idx])
            L.append(b[b_idx])
            a_idx += 1
            b_idx += 1
            i += 2
        elif a[a_idx] > b[b_idx] :
            L.append(a[a_idx])
            a_idx += 1
            i += 1
        else :
            L.append(b[b_idx])
            b_idx += 1
            i += 1
    if a_idx == N_a :
        while b_idx < N_b :
            L.append(b[b_idx])
            b_idx += 1
    if b_idx == N_b :
        while a_idx < N_a :
            L.append(a[a_idx])
            a_idx += 1

    return L
        

N = random.randrange(2,6)
a = sorted([random.randrange(0,10) for i in range(N)],reverse = True)
b = sorted([random.randrange(0,10) for i in range(N)],reverse = True)

 

c = sorted([random.randrange(0,10) for i in range(N)],reverse = True)

print("N:",N)
print("Array a:\n",a)
print("Array b:\n",b)
print("Array c:\n",c)

d = sorted(a+b+c,reverse = True)

print("Length of d:\n",len(d))
print("Array c:\n",d)

d2 = Merge(a,b,N,N)
d2 = Merge(d2,c,N*2,N)

print("Length of d2:\n",len(d2))
print("Array d2:\n",d2)
									

Код (Pascal)

program Array64;
 
type
 MyArray = array[1..30] of integer;
 
var
  a,b,c,d,ab: MyArray;
  NA,NB,NC,k:Integer;
 
Function ConnectionArray(a,b:MyArray;NA,NB:Integer):MyArray;
  var
   tempArray: MyArray;
   i,ia,ib:integer;
  begin
   ia:=1;
   ib:=1;
   for i:=1 to NA+NB do
    begin
     if ia>NA then
      begin
       tempArray[i]:=b[ib];
       inc(ib);
      end
     else
     if ib>NB then
      begin
       tempArray[i]:=a[ia];
       inc(ia);
      end
     else
     if a[ia]>b[ib] then
      begin
       tempArray[i]:=a[ia];
       inc(ia);
      end
     else
      begin
       tempArray[i]:=b[ib];
       inc(ib);
      end;
 
    end;
    ConnectionArray:=tempArray;
  end;
 
begin
  Write('NA: ');
  Readln(NA);
 
  Writeln('A: ');
  for k:=1 to NA do
   begin
    write(k,' :');
    readln(a[k]);
   end;
  Write('NB: ');
  Readln(NB);
 
  Writeln('B: ');
  for k:=1 to NB do
   begin
    write(k,' :');
    readln(b[k]);
   end;
 
  Write('NC: ');
  Readln(NC);
 
  Writeln('C: ');
  for k:=1 to NC do
   begin
    write(k,' :');
    readln(c[k]);
   end;
//------------------------------
  ab:=ConnectionArray(a,b,NA,NB);
  d:=ConnectionArray(ab,c,NA+NB,NC);
 
  Writeln('D(',NA+NB+NC,'):');
  for k:=1 to NA+NB+NC do writeln(k,' :',d[k]);
end.
									




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

Комментарии

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