1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include "stdafx.h"
#include "stdio.h"
#include <time.h>
#include <stdlib.h>
class vector
{
private:
int* m;
int size;
public :
vector(int n = 0);
vector(const vector &vector2);
~vector();
};
vector::vector( int n )
{
if (n < 0) n = 0;
size = n;
m = new int[n];
if(!m)
printf("Error");
else
m = NULL;
}
vector::vector(const vector &vector2)
{
size = vector2.size;
m = new int [size];
for(int i = 0; i<size;i++)
m[i] = vector2.m[i];
printf("kopia stvorena !");
}
vector::~vector()
{
delete[] m;
}
vector(int *m, int size)
{
srand(time(NULL))
if(!m)
printf("error")
else
for(int i = 0; i < size; i++)
m[i] = rand()% 99;
}
int main()
{
vector v1(45),
system("pause");
return 0;
}
Объяснение:
n, k, t, i, counter, j: int64;
c: array[1..10]of int64;
a: array[1..100000]of int64;
ar: array[1..10, 1..100000]of int64;
count: array[1..10]of int64;
b: boolean;
label l1;
begin
b := true;
counter := 0;
read(n, k, t);
for i := 1 to n do read(c[i]);
for i := 1 to k do read(a[i]);
l1:
while (counter <> k) do
begin
for j := 1 to n do
begin
for i := 1 to c[j] do
begin
if(ar[j, i] <= a[counter + 1]) then
begin
ar[j, i] := t + a[counter + 1];
counter := counter + 1;
count[j] := count[j] + 1;
b := false;
goto l1;
end;
end;
end;
if(b = true) then counter := counter + 1;
b := true;
end;
for i := 1 to n do write(count[i], ' ');
end.