1149. 【克罗地亚】LAGNO

来源:互联网 发布:淘宝网购物ppt 编辑:程序博客网 时间:2024/04/29 05:26

T2:A了,一道水题,就是翻转棋,只要往每一个点八个方向找就ok。大概

uses    math;var    i,j,n,s,t,ans,tans:longint;    a:array[0..10,0..10]of char;function get(x,y:longint):longint;var    i,j:longint;begin        get:=0;        if a[x,y]<>'.' then                exit(0);    if a[x+1,y]='W' then    begin        i:=x+1;        while (i<8)and(a[i,y]<>'.') do        begin            inc(i);            if a[i,y]='B' then            begin                inc(get,i-x-1);                break;            end;        end;    end;    if a[x-1,y]='W' then    begin        i:=x-1;        while (i>1)and(a[i,y]<>'.') do        begin            dec(i);            if a[i,y]='B' then            begin                inc(get,x-i-1);                break;            end;        end;    end;    if a[x,y+1]='W' then    begin        i:=y+1;        while (i<8)and(a[x,i]<>'.') do        begin            inc(i);            if a[x,i]='B' then            begin                inc(get,i-y-1);                break;            end;        end;    end;    if a[x,y-1]='W' then    begin        i:=y-1;        while (i>1)and(a[x,i]<>'.') do        begin            dec(i);            if a[x,i]='B' then            begin                inc(get,y-i-1);                break;            end;        end;    end;    if a[x+1,y+1]='W' then    begin        i:=x+1;        j:=y+1;        while (i<8)and(j<8)and(a[i,j]<>'.') do        begin            inc(i);            inc(j);            if a[i,j]='B' then            begin                inc(get,j-y-1);                break;            end;        end;    end;    if a[x+1,y-1]='W' then    begin        i:=x+1;        j:=y-1;        while (i<8)and(j>1)and(a[i,j]<>'.') do        begin            inc(i);            dec(j);            if a[i,j]='B' then            begin                inc(get,y-j-1);                break;            end;        end;    end;    if a[x-1,y+1]='W' then    begin        i:=x-1;        j:=y+1;        while (i>1)and(j<8)and(a[i,j]<>'.') do        begin            dec(i);            inc(j);            if a[i,j]='B' then            begin                inc(get,j-y-1);                break;            end;        end;    end;    if a[x-1,y-1]='W' then    begin        i:=x-1;        j:=y-1;        while (i>1)and(j>1)and(a[i,j]<>'.') do        begin            dec(i);            dec(j);            if a[i,j]='B' then            begin                inc(get,y-j-1);                break;            end;        end;    end;    exit(get);end;begin    //assign(input,'b.in');reset(input);    for i:=1 to 8 do    begin        for j:=1 to 8 do        begin            read(a[i,j]);        end;                readln;    end;    for i:=1 to 8 do    begin        for j:=1 to 8 do                begin            ans:=max(ans,get(i,j));        end;    end;    writeln(ans);end.
1 0
原创粉丝点击