Cod sursa(job #1397948)

Utilizator mariusadamMarius Adam mariusadam Data 23 martie 2015 20:53:48
Problema Evaluarea unei expresii Scor 0
Compilator fpc Status done
Runda Arhiva educationala Marime 1.43 kb
program siruri;
var     v:array[1..1000001] of char;
        cd:array[1..99999999] of longint;
        used:array[1..100001] of 0..1;
        n,p:longint;

procedure citire;
var     i:longint;
        f:text;
begin
 assign(f,'siruri.in'); reset(f);
 readln(f,p);
 readln(f,n);
 for i:=1 to n do
        read(f,v[i]);
 close(f);
end;

procedure scrie(x:longint);
var g:text;
begin
 assign(g,'siruri.out'); rewrite(g);
 writeln(g,x);
 close(g);
end;

procedure sol1;
var     i,j,nrs,st,sf,prec,k:longint;
        max,val,min:char;
begin
 nrs:=n;
 for i:=1 to n do
        cd[i]:=i;
 st:=1; sf:=n;
 while st<=sf do begin
        prec:=cd[st];
        for i:=prec+1 to n do
                if v[prec]<=v[i] then begin
                        sf:=sf+1;
                        cd[sf]:=i;
                        nrs:=nrs+1 mod 41357 ;
                end;
        st:=st+1;
 end;
 scrie(nrs);
end;

procedure sol2;
var i,j,st,nrp:longint;
begin
 nrp:=0;
 for i:=1 to n do
        if used[i]=0 then begin
                used[i]:=1;
                st:=i;
                for j:=i+1 to n do
                        if (v[st]<=v[j])and(used[j]=0) then begin
                                st:=j;
                                used[j]:=1;
                        end;
                nrp:=nrp+1;
        end;
 scrie(nrp);
end;

begin
 citire;
 if p=1 then
        sol1
 else
        sol2;
end.