水爆了

###Pascal Code
var
n,x,y,k,ans,m,i:longint;

function min(a,b,c,d:longint):longint;
begin
if a<b then min:=a
else min:=b;
if c<min then
min:=c;
if d<min then
min:=d;
end;

begin
readln(n,x,y);
if n=1 then
begin
writeln(1);
exit;
end;
k:=min(x,y,n-x+1,n-y+1);
ans:=0;
m:=n;
for i:=1 to k-1 do
begin
inc(ans,(m-1)*4);
dec(m,2);
end;
if k=x then inc(ans,y-k+1)
else if k=n-y+1 then inc(ans,m+x-k)
else if k=n-x+1 then inc(ans,(m-1)*2+n-y+2-k)
else if k=y then inc(ans,(m-1)*3+n-x+2-k);
writeln(ans);
end.

8 条评论

  • @ 2016-08-18 16:08:01

    提示:下次发到题解去 !!!

  • @ 2015-10-05 11:30:53

    sd

  • @ 2015-08-17 15:22:40

    楼下那家伙根本不会,别听他bb

  • @ 2015-08-17 15:21:08

    恩,是的呢

  • @ 2015-07-12 14:12:18

    orz

  • @ 2014-11-28 19:34:54

    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    #include<math.h>
    void sq();
    void cl();
    int x,y,m=0,n,n1,n2;
    void sq()
    {
    if(x==n1||x==n2||y==n1||y==n2) cl();
    else {
    m=m+(n2-n1)*4;
    n1++;
    n2--;
    sq();
    }
    }
    void cl()
    {
    if(x==n1) printf("%d",m+1+y-n1);
    else if(x==n2) printf("%d",m+(n2-n1)*3+1-y+n1);
    else if(y==n1) printf("%d",m+(n2-n1)*3+1+n2-x);
    else if(y==n2) printf("%d",m+n2-n1+1+x-n1);
    }
    int main()
    {
    int i,j;
    scanf("%d%d%d",&n,&x,&y);
    n1=1;
    n2=n;
    sq();
    return 0;
    }

  • @ 2014-11-27 18:26:08

    orzorzorz

  • @ 2014-11-26 13:19:34

    orz

  • 1

信息

ID
1913
难度
5
分类
(无)
标签
递交数
2027
已通过
624
通过率
31%
被复制
16
上传者