p2274.pas

来自「高手写的所有acm例程 在acm.zju.edu.cn 上的题目的例程」· PAS 代码 · 共 55 行

PAS
55
字号
PROGRAM p2274;

VAR
        n,i,j,k                                 :Integer;
        ans                                     :Longint;
        num                                     :array[1..500]of Longint;
        total                                   :array[1..500,0..1]of Longint;

FUNCTION prime(a,b:Longint):Boolean;
begin
if a=0 then
        begin
        if b=1 then prime:=true else prime:=false;
        end else
        prime:=prime(b mod a,a);
end;

PROCEDURE Main;
var
        flag                            :Boolean;
        i,j,c                           :Integer;
        ans,d                           :Longint;
begin
for i:=1 to n-1 do
        for j:=i+1 to n do
                begin
                if num[i]>num[j] then flag:=prime(num[j],num[i])
                        else flag:=prime(num[i],num[j]);
                if flag then c:=1 else c:=0;
                inc(total[i][c]);
                inc(total[j][c]);
                end;

ans:=1;
for i:=1 to 3 do
        ans:=ans * (n-i+1) div i;
d:=0;
for I:=1 to n do
        inc(d,total[i][0] * total[i][1]);
ans:=ans - d div 2;
writeln(ans);
end;

BEGIN
//assign(input,'p.in');
//reset(input);
while not eof do
        begin
        readln(n);
        for i:=1 to n do read(num[i]);
        readln;
        fillchar(total,sizeof(total),0);
        Main;
        end;
END.

⌨️ 快捷键说明

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