Advertisement Problem



Broadcasting stations need to schedule the ads, so no collision occurs. How does an ads schedule software work? Below you can find the basic algorithm. 
 

The Algorithm

 

  

Pascal Source Code

 

program ad;
uses crt;
var
a:array[1..100,1..100]of integer;
c,d:array[1..100]of integer;
i,n,j,t,k,l,yedek,byk,v,old:integer;
begin
  clrscr;
  writeln('number of advertisements');
  readln(n);
  for i:=1 to n do
   begin
    writeln(i,' advertisement...:');
    write('cost...:');readln(a[1,i]);
    write('validity time...:');readln(a[2,i]);
   end;
  for i:=1 to n-1 do
    begin
     for j:=1 to n-i do
       if(a[2,j]>=a[2,j+1]) then
          for k:=1 to 2 do
           begin
            yedek:=a[k,j];
            a[k,j]:=a[k,j+1];
            a[k,j+1]:=yedek;
           end;
    end;
  writeln('sorted array...:');
  write('cost...:  ');
  for i:=1 to n do write(a[1,i]:4);
  writeln;
  write('validity..:');
  for i:=1to n do write(a[2,i]:4);readkey; writeln;
  c[1]:=a[2,1];
  t:=1;
  for i:=2 to n do
   begin
    if (a[2,i]<>a[2,i-1]) then
      begin 
 t:=t+1;c[t]:=a[2,i];
end;
   end;
  for j:=t downto 1 do
   begin
    i:=n;
    while (a[2,i]>=c[j]) and (i>1do
    begin
        i:=i-1;  l:=i;
    end;
    byk:=a[1,l];
    old:=l;
    for v:=l to n do
      begin
          if a[1,v]>byk then
              begin
                byk:=a[1,v];
                old:=v;
              end;
      end;
    d[j]:=byk;
    a[1,old]:=0;
  end;
  for i:=0 to t+1 do  begin
  write(d[i],'  ');writeln;end; readkey;
 end.
 

Sample Execution

 

number of advertisements

5

1. advertisement...: cost...:30

                       validity...:4

2. advertisement...: cost...:44

                      validity...:3

3. advertisement...: cost...:45

                      validity...:2

4. advertisement...: cost...:50

                      validity...:5

5. advertisement...: cost...:60

                       validity...:8

sorted array...:

cost...:    45  44  30  50  60

validity..:    2   3   4     5     8

1. advertisement...:30

2. advertisement...:45

3. advertisement...:44

4. advertisement...:50

5. advertisement...:60

 
Copyright by Chasan Chouse