По разделам

 

Решение задачи Array 140


Дано множество A из N точек с целочисленными координатами x, y. Порядок на координатной плоскости определим следующим образом: (x1, y1) < (x2, y2), если либо x1 +y1 < x2 +y2, либо x1 +y1 = x2 +y2 и x1 < x2. Расположить точки данного множества по убыванию в соответствии с указанным порядком.

Код (C/C++)

#include <stdio.h>
 
void swap(float a1[], float a2[]){
    a1[0]+=a2[0];
    a2[0]=a1[0]-a2[0];
    a1[0]-=a2[0];
 
    a1[1]+=a2[1];
    a2[1]=a1[1]-a2[1];
    a1[1]-=a2[1];
}
 
int compare (float a1[], float a2[]){
    if ((a1[0]+a1[1]<a2[0]+a2[1])||((a1[0]+a1[1]==a2[0]+a2[1]) && (a1[0]<a2[0]))) return 1;
    else return 0;
}
 
int main(void)
{
    float a[10][2];
    int n;
 
    printf("N: ");
    scanf("%i",&n);
 
    int i;
    for (i=0; i<n; ++i){
        printf("a[%i]:\n",i+1);
        printf("  x : ");
        scanf("%f",&a[i][0]);
        printf("  y : ");
        scanf("%f",&a[i][1]);
    }
 
    int i2, n2=n;
 
    for (i=0; i<n-1;i++){
        --n2;
        for (i2=0; i2<n2; i2++)
            if (compare(a[i2+1],a[i2])==0){
                swap(a[i2+1], a[i2]);
            }
    }
 
    for (i=0; i<n;i++)
    printf("A %i :\n x: %f\n y: %f\n",i+1 , a[i][0],a[i][1]);
 
    return 0;
}

Код (Pascal)

program Array140;
 
var
 A: array [1..10,1..2] of real;
 N,N2,i,i2,i3: integer;
 
Procedure Swap(var X1, Y1, X2, Y2 :Real);
 begin
  X1:=X1+X2;
  X2:=X1-X2;
  X1:=X1-X2;
 
  Y1:=Y1+Y2;
  Y2:=Y1-Y2;
  Y1:=Y1-Y2;
 end;
 
Function Compare(X1,Y1, X2, Y2:real):boolean;
 begin
  if (x1+y1<x2+y2) or ((x1+y1=x2+y2) and (x1<x2)) then Compare:=True
  else Compare:=False;
 end;
 
begin
 Write('N: ');
 Readln(N);
 
 Writeln('A: ');
 for i:=1 to N do
  begin
   write(i,'.x :');
   readln(a[i,1]);
   write(i,'.y :');
   readln(a[i,2]);
  end;
 
 N2:=N;
 for i:=1 to N-1 do
  begin
   i2:=1;
   N2:=N2-1;
   while (i2<=N2) do
    begin
     if Compare(A[i2+1,1],A[i2+1,2],A[i2,1],A[i2,2]) then Swap(A[i2+1,1],A[i2+1,2],A[i2,1],A[i2,2]);
     inc(i2);
    end;
  end;
  for i:=1 to N do writeln(a[i,1]:7:0,' : ',a[i,2]:7:0);
end.
									




Array. Абрамян
Array 1 Просмотров: 10192
Array 2 Просмотров: 7005
Array 3 Просмотров: 5716
Array 4 Просмотров: 4889
Array 5 Просмотров: 6602
Array 6 Просмотров: 4546
Array 7 Просмотров: 4454
Array 8 Просмотров: 4749
Array 9 Просмотров: 4271
Array 10 Просмотров: 3909
Array 11 Просмотров: 4685
Array 12 Просмотров: 3773
Array 13 Просмотров: 3348
Array 14 Просмотров: 2849
Array 15 Просмотров: 4406
Array 16 Просмотров: 3423
Array 17 Просмотров: 3297
Array 18 Просмотров: 4426
Array 19 Просмотров: 2952
Array 20 Просмотров: 4677
Array 21 Просмотров: 2680
Array 22 Просмотров: 2418
Array 23 Просмотров: 2850
Array 24 Просмотров: 2669
Array 25 Просмотров: 2202
Array 26 Просмотров: 2876
Array 27 Просмотров: 2363
Array 28 Просмотров: 3070
Array 29 Просмотров: 1785
Array 30 Просмотров: 2614
Array 31 Просмотров: 2058
Array 32 Просмотров: 2442
Array 33 Просмотров: 1796
Array 34 Просмотров: 2109
Array 35 Просмотров: 1479
Array 36 Просмотров: 1568
Array 37 Просмотров: 3075
Array 38 Просмотров: 1651
Array 39 Просмотров: 1704
Array 40 Просмотров: 1918
Array 41 Просмотров: 1716
Array 42 Просмотров: 1379
Array 43 Просмотров: 1640
Array 44 Просмотров: 1514
Array 45 Просмотров: 1579
Array 46 Просмотров: 1386
Array 47 Просмотров: 1812
Array 48 Просмотров: 2913
Array 49 Просмотров: 1794
Array 50 Просмотров: 1339
Array 51 Просмотров: 2150
Array 52 Просмотров: 1991
Array 53 Просмотров: 1541
Array 54 Просмотров: 1538
Array 55 Просмотров: 1399
Array 56 Просмотров: 1262
Array 57 Просмотров: 1497
Array 58 Просмотров: 1399
Array 59 Просмотров: 1770
Array 60 Просмотров: 1289
Array 61 Просмотров: 1248
Array 62 Просмотров: 2109
Array 63 Просмотров: 1655
Array 64 Просмотров: 1360
Array 65 Просмотров: 1739
Array 66 Просмотров: 1586
Array 67 Просмотров: 1299
Array 68 Просмотров: 2462
Array 69 Просмотров: 1869
Array 70 Просмотров: 1762
Array 71 Просмотров: 1487
Array 72 Просмотров: 1408
Array 73 Просмотров: 1185
Array 74 Просмотров: 1424
Array 75 Просмотров: 1596
Array 76 Просмотров: 1420
Array 77 Просмотров: 1202
Array 78 Просмотров: 1417
Array 79 Просмотров: 1200
Array 80 Просмотров: 1158
Array 81 Просмотров: 1071
Array 82 Просмотров: 956
Array 83 Просмотров: 878
Array 84 Просмотров: 868
Array 85 Просмотров: 1011
Array 86 Просмотров: 1493
Array 87 Просмотров: 873
Array 88 Просмотров: 923
Array 89 Просмотров: 966
Array 90 Просмотров: 1762
Array 91 Просмотров: 1121
Array 92 Просмотров: 1363
Array 93 Просмотров: 1371
Array 94 Просмотров: 1171
Array 95 Просмотров: 1586
Array 96 Просмотров: 1297
Array 97 Просмотров: 1173
Array 98 Просмотров: 1889
Array 99 Просмотров: 1117
Array 100 Просмотров: 1084
Array 101 Просмотров: 1141
Array 102 Просмотров: 861
Array 103 Просмотров: 934
Array 104 Просмотров: 911
Array 105 Просмотров: 744
Array 106 Просмотров: 1115
Array 107 Просмотров: 961
Array 108 Просмотров: 1021
Array 109 Просмотров: 957
Array 110 Просмотров: 1027
Array 111 Просмотров: 902
Array 112 Просмотров: 1728
Array 113 Просмотров: 1249
Array 114 Просмотров: 1084
Array 115 Просмотров: 1205
Array 116 Просмотров: 2168
Array 117 Просмотров: 1640
Array 118 Просмотров: 895
Array 119 Просмотров: 790
Array 120 Просмотров: 971
Array 121 Просмотров: 911
Array 122 Просмотров: 986
Array 123 Просмотров: 940
Array 124 Просмотров: 811
Array 125 Просмотров: 841
Array 126 Просмотров: 781
Array 127 Просмотров: 790
Array 128 Просмотров: 857
Array 129 Просмотров: 866
Array 130 Просмотров: 922
Array 131 Просмотров: 1097
Array 132 Просмотров: 881
Array 133 Просмотров: 776
Array 134 Просмотров: 1239
Array 135 Просмотров: 774
Array 136 Просмотров: 925
Array 137 Просмотров: 891
Array 138 Просмотров: 771
Array 139 Просмотров: 898
Array 140 Просмотров: 1499

Комментарии

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



Заявка на расчет