Home arrow Studies arrow Algorithms arrow Advertisement Problem
Advertisement Problem PDF Print

 

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

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 2003-2007 by Chasan Chouse.

Locations of visitors to this page