# 3713: [PA2014]Iloczyn

## 3713: [PA2014]Iloczyn

Time Limit: 1 Sec  Memory Limit: 128 MB

Submit: 327  Solved: 181

[Submit][Status][Discuss]

5 5 4 12 11 10

## Sample Output

TAK TAK NIE NIE TAK

## Source

 1 /**************************************************************
2     Problem: 3713
3     User: HansBug
4     Language: Pascal
5     Result: Accepted
6     Time:0 ms
7     Memory:244 kb
8 ****************************************************************/
9
10 var
11    a:array[0..1000] of int64;
12    lef,rig,fix:array[0..1000] of longint;
14    a1:int64;
15 procedure rt(var x:longint);
16           var f,l:longint;
17           begin
18                if (x=0) or (lef[x]=0) then exit;
19                f:=x;l:=lef[x];
20                lef[f]:=rig[l];
21                rig[l]:=f;
22                x:=l;
23           end;
24 procedure lt(var x:longint);
25           var f,r:longint;
26           begin
27                if (x=0) or (rig[x]=0) then exit;
28                f:=x;r:=rig[x];
29                rig[f]:=lef[r];
30                lef[r]:=f;
31                x:=r;
32           end;
33 procedure ins(var x:longint;y:longint);
34           begin
35                if x=0 then
36                   begin
37                        x:=y;
38                        exit;
39                   end;
40                if a[y]<=a[x] then
41                   begin
42                        if lef[x]=0 then lef[x]:=y else ins(lef[x],y);
43                        if fix[lef[x]]<fix[x] then rt(x);
44                   end
45                else
46                    begin
47                         if rig[x]=0 then rig[x]:=y else ins(rig[x],y);
48                         if fix[rig[x]]<fix[x] then lt(x);
49                    end;
50           end;
51 function check(x:longint;y:int64):boolean;
52          begin
53               if x=0 then exit(false);
54               if a[x]=y then exit(true);
55               if y<a[x] then exit(check(lef[x],y)) else exit(check(rig[x],y));
56          end;
57 begin
59      for i:=3 to 60 do a[i]:=a[i-1]+a[i-2];
60      for i:=1 to 60 do
61          begin
62               lef[i]:=0;rig[i]:=0;fix[i]:=random(maxlongint);
64          end;
66      while t>0 do
67            begin
69                 if a1=0 then writeln('TAK') else
70                    begin
71                         j:=0;
72                         for i:=2 to 60 do
73                             begin
74                                  if a[i]>a1 then break;
75                                  if (a1 mod a[i])<>0 then continue;
76                                  if check(head,a1 div a[i]) then
77                                     begin
78                                          j:=1;writeln('TAK');
79                                          break;
80                                     end;
81                             end;
82                         if j=0 then writeln('NIE');
83                    end;
84                 dec(t);
85            end;
87 end.

0 条评论

• ### 1475: 方格取数

1475: 方格取数 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 578  Solved: 309 [Subm...

• ### 1627: [Usaco2007 Dec]穿越泥地

1627: [Usaco2007 Dec]穿越泥地 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 504  So...

• ### 3404: [Usaco2009 Open]Cow Digit Game又见数字游戏

3404: [Usaco2009 Open]Cow Digit Game又见数字游戏 Time Limit: 3 Sec  Memory Limit: 128 ...

• ### 1475: 方格取数

1475: 方格取数 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 578  Solved: 309 [Subm...

• ### 3404: [Usaco2009 Open]Cow Digit Game又见数字游戏

3404: [Usaco2009 Open]Cow Digit Game又见数字游戏 Time Limit: 3 Sec  Memory Limit: 128 ...

• ### ESP8266使用详解--基于Lua脚本语言ESP8266刷AT固件与nodemcu固件轻松使用8266

这些天,,,,今天终于看到了希望,,,天道酬勤 先说实现的功能...让ESP8266连接无线网,然后让它建立服务器,,我的客户端连接上以后,发给客户端发数据模块...

• ### 谈谈promise/async/await的执行顺序与V8引擎的BUG

细心的朋友肯定会发现前面第 6 步，如果async2函数是没有async关键词修饰的一个普通函数呢？

• ### UART

UARTRS232 RS485 RS422区别RS232物理接口RS485物理接口RS422物理接口UART通信协议UART设计波特率产生模块发送模块接收模块顶...

• ### 值得深思的18大效应与定律

源 / 人民网 文 / 老何

• ### Android View绘制流程分析

我们刚接触android开发的时候，应该都是从写布局开始的，在写布局的时候一般组长都要求我们少嵌套，这个是为什么呢？这个就要从我们今天要分析的invalidat...