|
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>1) do 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
|