ex.dpr

来自「tongji acm-online judge solution」· DPR 代码 · 共 86 行

DPR
86
字号
program Ural_1061(Input, Output);
const
    MaxN = 100000;
type
    TIndex = Longint;
    TData = array[1..MaxN] of Char;
var
    N, K: TIndex;
    D: TData;

procedure Main;
var
    i, t: TIndex;
    S, Min, MinIndex: TIndex;
    Locked: Boolean;
begin
    Readln(N, K);
    if N < K then
    begin
        Writeln(0);
        Exit;
    end;
    for i := 1 to N do
        repeat
            Read(D[i]);
        until D[i] in ['0'..'9', '*'];
    Min := MaxLongint;
    MinIndex := 0;
    i := 0;
    Locked := true;
    S := 0;
    while i < N do
    begin
        if Locked then
        begin
            t := 0;
            Locked := false;
            S := 0;
            while (i < N) and (t < K) do
            begin
                Inc(i);
                Inc(t);
                if D[i] = '*' then Break;
                Inc(S, Ord(D[i]) - Ord('0'));
            end;
            if D[i] = '*' then
            begin
                Locked := true;
                Continue;
            end;
            if (t = K) and (S < Min) then
            begin
                Min := S;
                MinIndex := i - K + 1;
            end;
        end
        else
        begin
            Inc(i);
            if D[i] = '*' then
            begin
                Locked := true;
                Continue;
            end;
            S := S - (Ord(D[i - K]) - Ord('0')) + (Ord(D[i]) - Ord('0'));
            if (S < Min) then
            begin
                Min := S;
                MinIndex := i - K + 1;
            end;
        end;
    end;
    Writeln(MinIndex);
end;

begin
  {  Assign(Input, 'i.txt');
    Reset(Input);
    Assign(Output, 'o.txt');
    Rewrite(Output);      }
    Main;
   { Close(Input);
    Close(Output);        }
end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?