Hướng dẫn giải của COMPANY
Chỉ dùng lời giải này khi không có ý tưởng, và đừng copy-paste code từ lời giải này. Hãy tôn trọng người ra đề và người viết lời giải.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.
Lưu ý: Các code mẫu dưới đây chỉ mang tính tham khảo và có thể không AC được bài tập này
Code mẫu của ladpro98
program LEM7; uses math; const maxE=trunc(1e4)+5; fi=''; var n,s,k,p,q,t:array[0..maxE] of longint; E:longint; inp:text; procedure init; var i,j,tt:longint; begin for i:=1 to E do begin t[i]:=i+1;p[i]:=1;q[i]:=i; for j:=1 to trunc(sqrt(i)) do if (i mod j = 0) then begin tt:=i div j; if (j+tt)<t[i] then begin t[i]:=j+tt; p[i]:=j; q[i]:=tt; end else if (j+tt=t[i]) and (j<p[i]) then begin p[i]:=j; q[i]:=tt; end; end; end; end; procedure dp; var i,j,tt:longint; begin for i:=1 to E do begin N[i]:=i+1;S[i]:=1;K[i]:=1; for j:=0 to trunc(sqrt(i)) do begin //for j:=0 to i-1 do begin tt:=N[j]+t[i-j]; if N[i]>tt then begin N[i]:=tt; S[i]:=S[j]+P[i-j]; K[i]:=K[j]+1; end else if N[i]=tt then begin if S[i]>S[j]+P[i-j] then begin S[i]:=S[j]+P[i-j]; K[i]:=K[j]+1; end else if (S[i]=S[j]+P[i-j]) and (K[i]>K[j]+1) then K[i]:=K[j]+1; end; end; end; end; begin assign(inp,fi);reset(inp); readln(inp,E); init; dp; write(N[E],' ',S[E],' ',K[E]); end.
Code mẫu của hieult
#include <stdio.h> //#include <conio.h> #include <math.h> int main() { int n,f[10001],s[10001],k[10001]; f[1] = 2; s[1] = 1; k[1] = 1; f[2] = 3; s[2] = 1; k[2] = 1; scanf("%d",&n); //while(scanf("%d",&n)) // { for(int i = 3;i<=n;i++) { f[i] = i+1;s[i] = 1;k[i] = 1; int flag = 0; for(int j = int(sqrt(i));j>=2;j--) { if(i%j==0) { flag = j; break; } } if(flag>0){ f[i] = flag+i/flag;s[i] = flag; k[i] = 1;} // else //{ for(int j=1;j<=i/2;j++) { if(f[j]+f[i-j]<f[i]) { f[i] = f[j]+f[i-j]; s[i] = s[j]+s[i-j]; k[i] = k[j]+k[i-j]; } else if(f[j]+f[i-j]==f[i]) { if(s[j]+s[i-j]<s[i]) { s[i] = s[j]+s[i-j]; k[i] = k[j]+k[i-j]; } else if(s[j]+s[i-j]==s[i] && k[i]<k[j]+k[i-j]) k[i] = k[j]+k[i-j]; } } //} } printf("%d %d %d",f[n],s[n],k[n]); //getch(); }
Code mẫu của ll931110
{$mode objfpc} const maxe = 10000; maxv = 10000000; k: array[1..maxe] of longint = (1,1,1,1,1,1,2,1,1,1,2,1,2,1,1,1,2,1,2,1,1,2,2,1,1,2,1,1,2,1,2,1,1,2,1,1,2,2,1,1,2,1,2,1,1,2,2,1,1,1, 2,1,2,1,1,1,2,2,2,1,2,2,1,1,1,1,2,2,2,1,2,1,2,2,1,2,1,1,2,1,1,2,2,1,2,2,2,1,2,1,1,2,2,2,1,1,2,1,1,1, 2,1,2,1,1,2,2,1,2,1,2,1,2,1,2,2,1,2,1,1,1,2,2,2,2,1,2,1,2,1,2,1,2,2,1,1,2,2,2,1,2,2,1,1,2,2,1,2,2,1, 2,1,1,1,2,1,2,2,2,1,2,1,2,2,1,2,2,1,1,1,1,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,1,2,1,1,2,1,2,2,1,1,2,1,2,1, 2,2,2,1,2,2,1,1,1,1,2,2,2,2,2,1,2,2,2,1,1,2,2,1,1,2,2,1,2,1,1,2,2,1,2,2,2,1,2,1,2,1,2,2,2,2,1,2,2,1, 2,1,1,2,1,1,2,2,2,1,2,2,2,1,2,1,2,2,2,1,2,1,1,2,1,1,2,2,2,1,2,2,2,2,1,1,2,1,1,2,2,2,2,1,2,2,1,2,1,1, 2,2,2,1,2,1,2,1,2,2,2,1,2,2,1,2,2,2,1,1,2,1,1,1,1,2,2,2,2,1,2,2,2,2,2,1,2,1,2,1,2,1,2,2,1,2,2,1,2,1, 1,1,2,2,2,2,1,2,2,1,1,2,2,1,2,2,2,1,2,2,2,1,2,1,1,2,1,1,2,1,2,2,2,1,2,2,2,2,2,1,1,1,2,2,2,1,2,2,1,1, 2,2,1,2,1,1,2,1,2,2,2,2,2,1,2,1,2,1,2,1,2,2,2,2,1,2,2,2,1,2,2,1,2,1,1,2,1,2,2,1,1,1,2,2,2,2,2,1,2,1, 2,2,2,2,1,1,2,2,1,1,2,1,2,1,1,2,2,1,2,2,2,2,2,2,1,1,2,2,2,1,2,2,1,1,2,1,2,2,2,1,2,2,1,1,2,1,2,2,2,1, 2,2,2,1,2,1,2,2,2,1,2,1,1,2,2,2,2,1,2,1,2,1,2,2,1,2,1,1,1,2,2,1,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,1, 1,1,2,2,2,2,2,1,2,1,1,2,2,2,2,2,1,2,2,1,2,1,2,2,1,1,2,1,2,1,2,2,2,2,1,2,2,1,1,2,2,1,2,1,2,2,2,1,2,1, 2,2,2,2,2,2,2,1,1,2,2,1,2,2,2,1,2,2,2,1,1,2,2,1,1,2,1,2,1,1,2,2,2,2,2,2,2,1,2,1,2,2,2,1,2,1,2,1,2,1, 1,2,2,2,2,2,2,2,2,1,2,2,1,2,1,1,1,2,2,2,2,1,2,2,1,1,2,2,2,1,2,1,2,1,2,2,2,2,2,1,2,2,1,2,2,1,2,2,2,1, 2,1,2,1,2,2,2,2,2,2,2,2,1,1,2,2,2,2,2,1,2,1,2,2,1,1,2,1,1,2,2,2,2,2,1,1,2,2,2,1,1,2,2,1,2,2,2,1,2,1, 2,2,2,1,2,1,2,2,1,1,2,2,2,2,2,2,2,1,2,1,2,2,2,1,1,2,1,2,1,1,2,1,1,1,2,2,2,2,2,2,2,1,2,2,2,2,2,1,2,1, 2,2,2,2,1,1,2,2,2,1,2,1,2,1,2,1,2,2,1,1,2,2,2,2,1,2,2,1,2,2,2,1,2,2,2,1,1,2,2,1,1,2,2,2,2,2,2,2,2,1, 1,2,2,2,1,2,2,1,2,2,1,2,2,1,2,2,2,1,2,1,2,2,2,1,1,2,2,2,2,1,2,1,2,1,2,2,2,1,2,2,1,2,2,2,2,1,1,2,1,1, 2,1,1,2,2,2,2,2,2,1,2,1,2,2,2,2,2,1,2,1,2,2,2,1,1,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2,1,2,1,2,2,2,2,1, 2,1,2,2,2,2,1,2,2,1,1,1,2,2,2,1,2,1,2,2,2,1,2,2,1,2,2,2,2,1,2,2,2,1,2,1,2,1,1,1,2,1,2,2,2,2,2,2,1,1, 2,2,2,2,2,2,2,1,2,2,2,1,2,1,1,2,2,2,2,1,2,2,1,1,1,1,2,2,2,2,2,1,2,1,1,1,2,2,2,1,2,2,2,1,2,2,2,2,2,1, 2,2,1,1,2,1,2,2,2,2,2,2,2,1,2,1,2,2,2,2,1,2,1,2,1,2,2,1,2,1,2,2,2,2,1,2,2,1,1,2,2,1,2,2,2,2,2,2,2,1, 2,1,2,1,2,2,1,2,2,1,2,2,2,2,2,1,2,1,2,1,2,1,2,2,1,2,1,1,2,2,1,2,2,1,2,2,2,2,2,1,2,2,2,1,2,2,1,1,2,1, 2,1,2,2,1,1,2,2,2,1,1,2,2,2,2,2,2,2,2,1,2,2,2,2,1,1,2,1,2,2,2,2,2,1,2,2,2,1,1,1,2,2,2,2,2,1,2,2,2,1, 2,2,2,1,2,2,2,2,1,2,2,2,2,2,1,1,2,1,2,2,1,2,2,1,1,2,2,2,2,1,2,1,2,2,2,2,2,2,2,1,2,1,2,2,2,2,1,1,2,2, 2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,2,2,2,1,2,1,2,2,1,1,1,2,2,2,1,2,2,2,2,2,2,1,1,2,1,2,1,2,2,1,1,2,2,2,1, 2,1,2,2,1,2,2,2,2,2,2,1,2,2,2,1,2,2,2,1,2,2,1,2,1,1,2,2,2,1,2,1,1,1,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,1, 2,1,1,2,2,2,2,2,2,1,2,2,1,1,1,2,2,1,1,2,2,1,2,2,2,1,2,2,2,1,2,2,2,2,2,1,2,2,2,2,2,1,2,1,1,2,2,2,2,1, 2,2,2,1,2,1,2,1,2,1,2,2,2,2,2,2,2,2,1,2,1,2,2,2,2,1,2,1,2,2,1,2,2,2,1,2,2,2,2,1,2,2,1,1,2,2,2,2,2,1, 2,1,2,2,2,1,1,2,2,2,2,1,2,2,2,2,2,2,3,1,2,1,2,2,2,1,2,2,1,1,2,1,2,2,1,2,2,1,2,2,2,2,2,2,2,1,2,2,2,1, 2,2,2,1,1,2,2,1,2,2,2,1,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,1,2,2,2,2,2,1,1,2,1,1,2,2,2,2,2,2,3,1,2,1, 1,2,2,1,2,2,2,1,2,1,2,2,2,1,2,1,2,1,2,2,2,2,2,2,1,2,2,2,2,2,1,2,2,1,2,2,2,2,2,1,1,2,2,2,1,1,2,1,1,1, 2,2,2,2,2,2,2,2,2,1,2,1,2,2,2,2,1,2,2,1,2,2,2,1,2,2,3,1,2,2,2,1,2,1,2,2,2,1,2,1,2,2,1,2,1,2,2,2,2,1, 2,2,1,2,2,1,2,2,2,2,2,2,3,1,1,1,2,2,2,2,2,1,2,1,2,2,1,2,2,1,1,2,1,2,2,2,2,2,2,2,2,1,2,2,2,1,2,2,2,1, 2,1,2,2,1,2,2,2,2,1,2,2,2,2,1,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,1,2,1,2,2,1,2,2,2,2,2,2,3,2,1,1,1, 2,2,2,2,1,2,2,2,2,1,2,2,1,1,2,2,1,1,2,1,2,2,2,2,2,1,2,2,2,2,2,1,2,2,1,1,2,2,2,2,2,1,2,1,2,2,2,1,2,1, 2,1,2,1,2,1,2,2,2,2,2,2,1,2,1,2,2,2,2,1,2,2,2,1,2,2,2,2,1,1,2,2,1,2,2,1,2,2,2,1,2,2,2,2,1,2,2,1,1,1, 2,2,2,2,1,1,2,2,2,1,2,1,2,2,2,2,2,2,3,1,2,1,2,2,2,2,2,2,3,1,2,2,2,2,2,1,1,2,2,1,2,1,2,2,2,2,2,2,2,1, 2,2,2,1,2,2,2,1,2,2,1,2,2,1,2,2,2,2,2,1,2,2,2,1,1,2,1,2,2,2,2,1,2,2,1,1,2,1,2,2,2,2,2,1,2,2,1,2,2,1, 2,2,2,2,2,2,3,2,2,1,1,2,2,2,2,2,2,1,2,2,2,1,2,1,2,1,2,1,2,1,2,2,2,2,2,2,2,2,1,2,2,2,2,2,1,2,2,1,2,1, 2,2,2,2,2,1,2,2,1,2,2,2,1,1,2,1,2,2,2,2,1,2,2,1,1,2,2,1,2,1,2,2,2,2,1,2,2,2,2,1,2,2,2,2,2,1,2,1,2,1, 2,1,2,2,2,2,2,1,2,2,2,2,2,1,2,2,1,1,2,1,2,1,2,1,2,2,2,2,1,1,2,2,2,2,2,2,3,1,2,1,1,2,2,2,2,2,2,2,2,1, 2,2,2,2,2,1,1,2,1,2,2,1,2,2,1,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,1,2,2,2,1,2,2,1,2,2,1,1,2,2,2,1, 2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,1,2,2,2,1,2,2,1,2,2,1,2,1,2,3,2,2,1,1,2,2,2,2,2,2,3,2,1,2,2,1,2,2,2,1, 2,2,2,1,1,2,2,1,1,2,2,2,2,1,2,2,2,2,2,1,2,2,1,2,2,1,2,2,2,2,2,1,2,2,2,1,2,2,2,1,2,1,2,1,2,2,2,2,2,1, 2,2,2,1,1,1,2,2,2,2,2,1,2,2,2,2,2,1,2,2,2,2,2,2,1,2,1,1,1,1,2,2,2,2,2,2,2,1,2,2,2,2,2,1,1,1,2,2,2,1, 1,2,1,1,2,2,2,2,2,1,2,2,2,2,2,2,3,1,2,1,2,1,2,2,2,2,2,2,2,2,1,1,2,2,2,2,1,2,2,1,2,2,2,2,1,1,2,2,2,1, 2,1,2,2,2,1,2,2,2,1,2,2,2,2,1,2,2,1,2,2,2,2,2,2,2,1,2,1,1,2,2,2,2,2,1,2,2,2,2,2,2,1,2,1,2,2,1,2,2,1, 1,2,2,2,1,2,2,1,2,2,2,1,2,2,1,2,2,1,1,1,2,2,2,2,2,2,2,2,2,1,2,1,2,2,2,1,2,1,2,1,2,1,2,1,2,2,2,1,2,1, 1,2,2,2,2,2,1,2,2,1,2,2,2,1,2,2,2,2,2,1,2,2,2,2,1,2,2,1,2,1,2,2,2,1,2,2,2,2,2,2,1,2,2,1,2,1,2,2,1,1, 1,2,2,2,2,2,2,1,2,2,2,2,2,2,3,1,2,2,2,1,2,2,2,2,2,2,3,2,2,1,2,2,2,2,1,2,1,1,2,2,2,1,2,1,2,2,2,1,2,1, 2,1,2,2,2,2,2,2,2,1,2,1,2,2,1,2,2,2,2,2,2,3,2,1,2,1,2,2,2,1,2,2,1,1,1,2,2,2,2,1,2,1,2,2,2,1,1,2,2,1, 1,2,2,1,2,2,2,2,2,1,2,2,1,2,2,2,2,2,2,2,2,1,1,1,2,2,1,2,2,2,2,1,2,2,2,2,2,2,3,1,2,2,2,2,2,1,2,2,2,1, 2,1,2,2,1,2,2,2,2,1,2,2,2,1,1,1,2,1,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,1,2,2,2,1,2,2,1,2,2,2,1,2,2,2,2,1, 2,2,1,1,2,1,2,2,1,2,2,2,2,1,2,2,2,2,2,1,2,2,2,2,2,1,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2,3,1,1,2,1,2,2,1, 2,1,2,1,2,1,2,2,2,1,2,2,2,2,2,2,3,2,1,2,2,1,1,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,1,2,1,2,2,2,2,1, 2,2,2,2,1,1,2,1,1,2,2,2,2,1,2,1,2,2,2,1,2,2,2,2,2,2,3,2,1,2,2,1,2,2,1,2,2,1,2,1,2,1,2,2,2,2,1,2,1,1, 2,1,2,2,2,1,2,2,2,1,2,1,2,2,2,2,1,2,2,1,2,2,2,2,2,2,2,2,2,1,1,2,2,2,2,1,2,1,2,2,1,2,2,2,2,2,2,1,2,1, 2,2,2,1,2,2,1,2,2,2,1,1,2,1,1,1,2,2,2,2,2,2,2,1,1,2,2,1,2,2,2,2,2,2,3,2,2,2,3,1,2,2,2,1,2,2,2,1,2,1, 2,2,2,2,2,2,3,1,2,2,1,2,2,1,2,2,1,1,2,1,2,2,2,2,2,1,2,2,2,2,2,1,2,2,2,2,2,2,1,1,2,1,1,2,2,2,2,2,2,1, 2,2,2,2,2,2,3,1,1,2,2,2,2,2,1,1,2,2,2,2,1,2,2,1,1,2,2,2,2,2,2,2,2,1,2,1,2,1,2,2,2,2,2,2,2,2,2,2,3,1, 2,2,1,2,1,2,2,2,2,1,2,2,2,2,2,1,2,1,2,2,2,1,2,1,2,2,2,1,2,1,2,1,2,2,2,2,1,2,2,2,2,2,2,3,2,1,2,2,2,1, 2,1,2,2,1,2,2,1,2,2,1,2,2,2,2,1,2,3,2,1,2,2,2,1,2,2,1,1,2,2,2,1,2,2,1,1,2,2,1,2,2,2,2,2,2,2,2,2,1,1, 2,2,2,2,2,2,1,2,2,1,2,1,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,3,1,2,2,2,2,1,1,2,2,2,1,2,1,2,2,1,1,2,2,2,1, 2,2,2,2,2,2,3,2,2,2,2,1,1,2,2,1,2,2,2,1,2,2,2,1,2,2,2,2,2,2,3,2,1,1,2,2,2,2,2,1,2,2,1,2,1,2,2,1,1,1, 2,2,2,2,2,1,2,2,2,2,2,2,2,1,2,1,2,1,2,2,3,2,2,2,2,1,2,2,2,2,2,2,1,2,1,1,2,2,2,1,2,2,2,1,2,2,2,2,2,1, 2,2,2,1,2,1,2,2,2,2,1,1,2,2,1,2,2,2,2,2,2,3,2,2,2,2,2,1,2,1,2,1,2,2,2,2,1,2,1,2,2,2,2,1,2,2,2,1,2,1, 2,2,2,1,1,2,2,1,2,1,2,2,1,1,2,1,2,2,2,2,2,2,2,2,1,2,2,2,2,1,1,2,2,1,2,2,2,1,2,2,2,1,2,2,2,2,1,2,3,1, 2,1,2,1,2,2,2,1,2,1,2,2,2,2,2,1,1,2,2,1,2,1,2,2,2,2,2,2,2,1,1,1,2,2,2,2,2,2,2,1,2,2,2,1,1,2,2,2,2,1, 2,2,2,2,2,1,2,2,2,2,2,2,3,2,1,2,2,1,2,2,2,1,2,2,2,2,1,2,1,1,1,2,2,1,2,2,2,2,2,2,2,2,2,2,2,1,2,1,2,1, 2,2,2,1,2,2,2,2,2,1,2,2,2,2,2,2,3,2,1,1,2,2,2,2,1,2,2,1,2,2,2,2,2,1,2,1,2,1,2,1,2,2,2,2,2,2,2,2,2,1, 1,1,2,2,1,2,2,2,2,2,2,2,2,1,2,2,2,2,1,1,2,1,2,2,1,2,1,2,2,2,2,3,2,1,2,2,2,1,2,2,1,2,2,2,2,1,2,2,1,1, 2,2,2,1,2,2,2,2,2,2,2,1,2,2,2,2,2,1,2,2,1,2,2,2,2,1,2,2,2,1,2,2,2,1,2,2,3,2,2,1,2,2,2,2,1,2,3,1,2,1, 2,2,2,1,2,2,1,1,2,1,2,2,2,2,2,1,2,2,2,2,3,1,2,2,1,2,2,2,2,1,2,2,2,2,1,2,2,2,2,1,2,1,2,2,2,1,2,2,2,1, 2,2,2,2,1,2,2,2,2,1,2,1,2,2,2,2,1,2,2,1,1,2,1,1,2,1,2,2,2,2,2,2,2,2,1,2,2,2,2,1,2,2,2,1,2,2,2,2,2,1, 2,1,2,2,2,2,2,2,3,1,2,1,1,2,2,2,2,2,2,1,2,2,1,1,2,1,2,2,2,1,2,1,2,2,2,2,2,2,2,2,2,1,2,2,1,1,2,2,2,1, 2,2,2,2,2,2,1,1,2,2,2,2,2,2,3,1,2,2,1,2,2,1,2,2,1,2,2,1,2,2,2,2,2,1,1,2,2,2,2,1,2,2,1,1,2,2,2,1,2,1, 2,2,2,1,2,2,2,2,2,2,2,2,2,1,2,2,2,2,1,2,1,2,2,2,2,1,2,2,2,2,2,2,3,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,1, 2,2,2,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,1,2,2,2,2,1,2,2,2,2,2,1,2,2,1,2,2,2,3,2,1,2,1,2,2,2,2,2,1, 2,1,1,2,2,2,2,2,2,1,2,2,2,2,1,2,2,1,1,2,2,2,2,2,1,1,2,1,2,2,2,2,2,1,2,2,2,2,2,1,2,2,2,2,1,1,2,2,2,1, 2,1,2,1,2,2,2,2,3,2,2,1,2,2,1,2,2,1,2,1,2,2,2,2,2,1,2,1,1,1,2,1,2,2,2,2,2,2,2,2,2,1,2,2,2,2,1,2,2,1, 2,2,2,2,2,1,2,2,2,1,2,2,2,2,2,2,1,2,2,1,1,2,2,2,2,2,2,2,2,1,1,2,2,2,2,2,1,1,2,2,2,1,2,2,1,1,2,2,2,1, 2,2,2,1,2,2,2,1,2,2,2,2,2,2,2,1,2,1,2,2,2,2,2,2,1,2,2,1,2,1,2,2,2,1,2,2,2,2,2,1,2,2,2,1,2,2,2,1,2,2, 2,2,2,1,2,2,2,1,2,1,1,2,2,2,1,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,1,2,1,2,2,2,2,2,2,3,2,2,2,1, 2,2,2,2,2,2,3,2,1,2,2,1,2,1,2,1,2,1,2,2,1,2,2,1,1,2,2,2,2,2,2,2,1,1,1,2,2,2,2,1,2,2,2,2,2,2,2,1,2,2, 2,2,2,2,3,1,2,2,2,1,2,2,2,1,2,1,2,2,2,1,2,2,2,2,1,2,2,1,2,2,2,2,2,1,2,2,2,1,2,1,2,1,1,2,2,2,2,2,2,1, 2,2,2,2,2,2,1,2,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,2,2,2,3,2,2,2,1,1,2,2,1,2,2,2,2,1,2,2,2,2,1,1,1,2,2,1, 2,1,2,2,1,1,2,2,2,2,2,2,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,1,2,2,2,2,2,1,2,2,1,2,2,1,2,2,2,2,2,2,1,1, 2,1,2,2,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,1,2,1,2,1,1,2,2,1,2,2,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2,1,2,2,2,1, 2,1,1,2,1,2,2,2,2,3,2,2,2,1,2,1,2,2,2,2,2,1,1,2,2,2,2,2,2,1,2,1,2,1,1,2,2,1,1,2,2,2,2,2,2,2,2,2,2,1, 2,2,1,2,1,2,2,1,2,1,2,2,2,1,2,2,2,2,2,2,3,2,2,1,2,1,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,1,1,2,2,2,2,2,1, 2,2,2,1,2,1,2,2,2,1,2,2,2,2,1,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,1,2,2,2,2,2,1,2,1,2,1,2,2,2,2,2,2,1,2, 2,1,2,2,2,2,2,1,2,2,1,2,2,2,1,2,1,2,2,1,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,1, 2,2,2,2,2,2,3,2,2,2,1,1,2,2,2,2,2,2,2,2,2,1,2,1,1,2,2,2,2,1,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,1,1,2,2, 2,2,2,1,2,2,2,2,2,2,3,1,2,2,2,2,1,2,2,1,2,2,2,2,1,2,2,2,2,1,1,2,2,2,2,1,2,2,2,1,2,2,2,2,1,2,2,2,2,2, 2,1,2,2,2,1,1,1,2,1,1,2,2,2,2,2,2,2,2,1,2,2,2,1,2,2,2,2,1,2,2,2,2,1,1,2,2,1,2,2,2,2,2,2,3,2,2,2,3,1, 2,2,2,2,2,1,2,2,2,1,2,2,2,1,2,1,2,1,1,2,2,2,1,1,2,2,2,1,2,1,2,2,2,2,2,1,2,1,2,1,2,2,2,2,1,2,2,2,2,1, 1,2,2,2,2,2,2,3,2,1,2,2,2,1,2,2,2,2,2,2,3,1,2,2,1,2,2,2,2,1,2,2,2,1,2,2,2,2,2,2,1,2,2,2,1,1,1,1,1,1, 2,1,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,1,2,2,2,2,2,2,3,1,2,1,2,2,2,2,3,2,2,2,2,1,1,2,2,2,2,2,2,2,2,1, 2,2,2,2,2,1,2,1,2,1,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,2,1,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,2,2,2,3,2, 2,1,2,2,1,2,2,2,2,2,2,3,2,2,1,1,2,2,2,2,2,1,2,2,1,2,2,2,2,2,2,1,2,2,2,2,1,2,2,1,1,2,2,2,2,1,2,2,2,2, 2,2,2,2,2,1,2,2,2,1,2,2,1,2,2,2,2,2,2,1,2,2,1,1,2,1,2,2,2,2,2,1,2,1,2,2,2,2,2,2,2,1,2,2,2,1,2,2,3,1, 2,2,1,1,2,1,2,2,2,1,2,1,2,2,2,2,2,2,2,1,2,2,2,1,2,2,2,2,2,1,2,2,1,2,1,2,2,2,2,2,2,3,2,2,2,1,2,1,2,2, 2,1,2,2,2,2,2,2,1,1,2,1,2,2,2,1,2,1,2,2,2,2,2,2,1,2,2,2,2,1,2,2,1,1,1,2,1,2,2,2,2,1,2,2,2,2,2,2,2,1, 2,2,2,2,2,2,3,1,2,2,2,2,2,1,2,2,2,2,2,1,2,2,2,2,1,1,2,2,1,2,2,2,2,2,2,1,2,2,2,2,2,2,3,1,2,1,2,1,2,1, 2,2,2,1,2,1,2,2,2,2,2,2,2,1,1,2,2,2,2,1,2,2,2,2,2,2,2,1,2,1,2,2,2,2,2,2,3,2,2,2,3,1,1,2,2,2,2,2,2,1, 1,2,2,1,2,2,1,2,2,1,2,1,1,2,2,2,2,2,2,1,2,2,2,2,1,2,2,1,1,1,2,1,2,2,2,1,2,2,2,1,2,2,2,2,2,1,2,2,2,2, 2,2,1,2,1,2,2,1,2,1,2,2,2,2,2,2,3,1,1,2,2,1,2,2,2,1,2,2,2,2,2,1,2,2,2,2,2,2,3,1,2,2,2,1,1,1,2,2,2,1, 2,1,2,2,2,2,2,2,2,2,2,1,2,2,1,2,2,1,2,2,2,2,2,2,3,2,1,2,1,2,2,1,2,3,2,2,2,2,2,1,2,2,2,2,1,2,3,2,2,2, 1,2,2,2,2,1,2,2,2,1,2,2,2,2,2,2,1,2,2,2,2,1,2,2,1,1,2,1,2,2,1,2,2,2,2,2,1,1,2,1,2,2,2,1,2,2,2,2,2,2, 3,2,2,1,2,2,2,1,2,2,2,2,2,2,3,2,2,1,2,1,2,2,2,2,1,2,2,2,1,1,2,2,2,2,2,2,3,1,2,2,2,2,2,1,2,2,2,1,2,1, 2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,1,2,2,2,2,2,2,3,1,2,2,2,1,2,2,2,2,2,1,2,2,1,1,2,2,2,2,2,2,2,2,2,1, 2,2,2,2,1,2,1,2,1,1,2,1,2,2,2,1,2,2,2,2,1,2,2,1,1,2,2,1,2,2,2,1,2,2,2,2,2,2,2,1,2,1,2,1,2,2,2,2,2,2, 3,2,2,2,1,2,2,1,2,2,2,2,2,1,2,2,2,2,3,1,2,2,1,2,2,1,2,2,2,1,2,2,2,2,2,2,3,1,2,2,2,2,2,1,1,1,2,1,2,1, 2,2,2,1,2,2,2,2,2,2,2,1,2,2,2,2,2,2,3,1,2,2,1,2,2,2,1,2,2,2,2,2,1,1,2,2,2,2,2,1,2,1,2,2,2,2,2,2,2,2, 1,2,2,2,2,2,2,3,2,1,2,1,2,2,2,1,1,2,2,2,2,1,2,2,1,1,2,2,2,1,2,2,2,2,1,2,2,2,2,2,2,2,2,2,1,1,2,2,2,2, 2,2,3,2,2,2,3,1,2,1,2,2,2,2,2,2,2,2,2,1,2,1,2,1,2,2,2,1,1,2,2,1,2,2,2,2,2,2,3,1,2,2,2,2,2,1,2,1,2,1, 2,1,2,2,2,1,2,2,1,2,2,2,2,2,1,2,2,2,2,2,2,3,2,1,2,2,2,2,2,1,2,2,2,2,2,2,3,1,2,1,2,2,1,2,2,1,2,2,2,1, 2,2,2,1,2,2,2,2,2,2,3,2,1,2,1,1,2,2,2,1,2,1,2,2,1,2,2,1,1,2,2,2,2,1,2,2,2,2,2,1,2,2,2,2,2,2,3,2,2,1, 2,1,2,2,2,2,3,2,1,2,2,2,1,1,2,2,2,2,2,2,2,2,2,1,2,1,2,2,2,1,2,2,2,1,1,1,2,2,2,2,2,2,2,1,2,2,2,2,2,1, 2,2,1,1,2,1,2,2,2,2,2,2,2,1,2,1,2,1,2,1,2,2,2,2,2,2,3,2,2,1,2,2,2,2,1,2,2,2,1,2,2,1,2,2,1,2,2,1,2,2, 2,1,2,2,2,2,2,2,1,2,2,2,2,2,2,3,2,1,2,2,2,1,2,2,1,2,2,2,2,1,2,2,1,1,2,2,2,2,2,1,2,2,2,2,2,2,1,2,2,1, 2,2,2,1,2,1,2,2,2,1,1,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,3,2,2,2,3,1,2,2,2,2,2,1,2,2,1,1,2,1,2,2,2,2,2,1, 2,2,2,2,2,1,2,2,2,1,2,1,2,1,2,2,2,2,2,2,2,2,2,1,1,2,1,2,2,2,2,2,2,3,2,2,2,1,2,2,2,1,2,2,2,2,2,2,3,1, 2,2,2,1,1,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,1,2,2,1,2,2,2,2,1,1,1,2,2,2,2,1,2,2,1,1,2,2,2,2,2,2,1,2,2, 2,2,2,2,3,1,2,2,2,2,2,1,2,1,2,2,2,2,2,1,2,1,2,2,2,2,2,1,1,2,2,2,1,2,2,2,2,2,2,1,2,2,2,2,2,2,3,1,2,1, 2,2,2,2,1,2,2,1,2,2,2,2,2,1,2,2,2,1,1,1,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,3,1,2,2,2,1,2,2, 1,2,2,2,2,2,2,3,2,1,2,2,1,1,1,2,2,2,2,1,2,2,2,2,1,2,2,2,2,2,2,3,2,1,2,2,2,2,2,1,1,1,2,2,2,1,2,2,1,1, 2,1,2,2,2,2,2,1,2,2,2,2,2,2,3,2,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1,1,2,2,1,2,2,1,2,1,2,2,2,2,2,2,2,1,2,1, 2,2,2,2,2,2,3,2,2,1,1,2,2,1,2,2,2,1,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,1,2,2,2,2,2,2,2,1,2,1,1, 2,2,2,2,2,2,2,2,2,1,2,1,2,2,2,2,2,2,2,2,2,2,3,2,1,2,2,1,2,2,2,1,2,1,2,1,2,2,2,2,2,2,3,2,1,2,2,2,2,2, 2,1,2,2,1,2,1,2,2,1,1,2,2,2,1,1,2,2,2,1,2,2,2,2,2,2,3,2,2,1,2,2,2,2,2,1,2,2,2,2,2,1,2,2,2,1,2,2,2,1, 2,2,1,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,3,2,2,1,2,1,2,2,2,2,2,1,2,2,1,2,2,1,2,2,2,1,2,1,1,2,2,2,2,2,2,1, 2,2,2,2,2,1,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,1,2,1,1,2,2,1,2, 2,2,2,2,2,3,2,1,2,2,2,2,2,2,1,1,2,2,2,1,2,2,1,1,2,2,2,2,2,2,2,1,2,1,2,2,2,2,2,2,1,2,2,2,1,2,2,2,2,1, 2,2,2,2,2,2,3,1,2,1,2,1,2,1,2,2,1,1,2,2,2,2,2,2,3,1,2,2,2,2,2,2,3,1,2,1,2,2,1,1,2,2,2,1,2,2,2,1,2,1, 2,2,2,1,2,1,2,1,2,2,2,2,2,2,2,1,2,2,2,2,2,2,3,2,1,2,2,2,2,2,1,2,2,1,2,2,2,2,2,1,2,2,2,2,2,2,3,1,2,2, 2,2,1,2,2,2,2,2,2,1,2,1,2,1,2,2,2,1,2,2,2,2,1,2,2,2,2,2,2,1,2,1,2,2,1,2,1,1,1,2,2,2,2,2,2,2,2,2,2,1, 2,2,2,2,2,2,3,2,2,2,3,1,2,2,2,1,2,2,2,2,2,2,3,2,2,2,2,2,3,1,2,2,2,2,1,1,2,2,2,2,2,1,2,2,2,2,2,2,3,2, 2,1,2,2,2,1,2,1,2,1,2,2,2,2,2,1,2,2,1,1,2,1,2,2,1,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,3,1,2,2,2,1,2,2,3,1, 2,2,2,1,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,3,2,1,1,1,2,2,2,1,2,2,1,2,1,2,2,2,2,2,2,1,2,2,1, 2,1,2,2,1,1,2,2,2,2,2,1,2,2,2,2,2,1,2,1,2,1,2,2,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2,2,3,2,2,2,3,2,2,1,2,1, 2,1,2,1,2,2,1,2,2,1,2,2,2,2,2,2,3,2,2,1,2,2,2,2,1,2,2,1,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,1,2,2,2,2,2,1, 2,2,2,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1,1,2,1,2,2,2,2,1,2,1,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,1,2,3,2,2,2,1, 2,2,2,2,2,2,3,1,1,2,2,2,2,2,2,1,2,2,2,1,1,2,2,1,1,2,1,2,2,2,2,2,2,2,2,1,2,1,2,2,2,1,2,2,1,2,2,2,2,2, 2,1,2,1,2,2,2,2,2,1,2,2,2,2,3,2,2,1,2,2,2,1,2,2,1,2,2,2,2,1,2,2,2,2,2,2,3,2,2,1,2,2,2,2,2,1,2,1,2,1, 2,2,1,1,2,2,2,1,2,1,2,2,1,1,1,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,1,2,2,2,2,2,2,3,2,2,2,3,1,2,2,1,2,2,1, 2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,3,2,2,1,1,1,1,2,2,2,2,2,2,1,2,2,1,1,2,2,1,2,2,2,2,1,2,2,1,1,2,2,2,1, 2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,1,2,2,2,1,2,2,2,1,1,1,2,2,2,2,2,2,2,2,2,2,1,2,2,1,2,2,2,2,2,1,2,1,2,2, 2,1,2,2,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1,1,2,2,2,1,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,1,2,2,2,2,3,2,2,2,2,1, 2,2,2,1,1,2,2,2,2,2,2,3,2,2,2,2,2,3,1,1,2,2,2,1,2,1,2,2,2,2,3,2,1,2,2,2,2,2,2,1,2,2,2,1,2,1,2,1,2,2, 2,2,1,2,2,2,2,2,2,1,2,2,2,2,1,1,2,1,1,2,2,2,2,2,1,2,2,2,2,2,2,3,2,1,2,2,2,2,2,1,2,1,2,2,2,2,1,2,2,1, 2,2,2,2,2,2,3,2,2,2,3,2,3,1,2,2,2,2,2,2,3,1,1,2,2,1,2,2,2,1,2,1,2,2,2,1,2,2,2,2,2,2,3,1,2,2,2,2,2,1, 2,2,2,1,2,1,2,2,2,2,2,2,1,2,1,2,2,1,2,2,2,2,2,2,2,1,2,2,2,1,2,2,2,2,2,2,3,2,2,2,2,2,3,2,1,1,2,2,2,1, 2,2,2,1,2,2,2,1,2,2,2,2,2,2,3,2,2,2,1,2,2,1,2,2,1,2,2,1,2,2,2,2,2,2,1,2,2,1,1,1,2,1,1,1,2,2,2,2,2,2, 2,1,2,2,2,2,2,2,2,1,2,2,2,2,2,2,3,2,2,1,2,2,2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,1,2,1,2,2,2,2,2,2,1,2,2,1, 2,1,2,2,2,2,2,2,2,1,1,1,2,2,2,2,2,2,3,1,1,2,2,2,2,1,2,1,2,1,2,1,2,2,2,2,2,2,2,1,2,2,2,1,2,2,2,1,2,2, 2,2,2,1,2,2,1,2,2,2,2,2,2,3,2,1,2,2,2,2,2,1,2,2,1,2,2,1,2,2,1,2,2,1,1,2,2,2,2,2,2,3,2,2,2,1,2,2,2,1, 2,2,2,1,1,2,2,2,2,1,2,1,2,2,2,2,1,2,2,1,1,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,2,1,2,2,2,2,2,2,3,2,2,2,3,1, 2,1,2,1,2,1,1,2,2,2,2,2,2,2,2,2,3,1,2,2,2,2,2,2,3,2,2,2,1,1,2,2,2,2,2,2,2,2,2,1,2,1,2,2,2,2,3,1,2,1, 2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,2,2,2,1,2,2,2,1,1,1,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,2,2,2,2,2,3,2,2,1, 1,2,2,2,2,1,2,1,2,2,2,2,2,1,2,1,2,2,2,2,3,2,1,2,1,2,2,2,2,1,2,2,2,1,1,2,2,2,2,2,1,2,2,2,2,1,2,2,1,1, 2,2,1,2,2,2,2,2,2,2,2,1,2,2,2,2,2,1,2,2,2,2,2,2,3,2,2,2,3,2,3,1,2,1,2,2,1,2,2,1,2,1,2,2,2,2,2,1,2,2, 2,2,2,2,3,2,2,2,3,1,2,1,2,2,1,2,3,2,2,1,2,2,2,2,1,1,2,1,2,2,1,2,2,1,2,2,2,1,2,1,2,2,2,2,2,2,2,2,2,1, 2,2,2,2,2,2,3,1,2,2,1,2,2,1,2,1,1,2,2,2,2,2,2,2,2,2,2,1,2,3,2,1,2,2,2,2,2,2,1,1,2,2,2,2,1,2,2,2,1,1, 2,2,2,2,2,1,2,2,2,2,2,1,2,2,1,2,2,1,2,2,2,1,2,2,2,2,1,2,2,1,1,1,2,1,2,2,2,1,2,2,2,2,2,2,1,2,2,2,2,1, 2,2,2,2,2,2,1,2,2,2,2,2,3,2,2,1,2,2,2,1,2,1,2,2,1,2,2,2,2,1,2,2,2,2,2,2,3,2,2,2,3,1,1,2,2,1,2,2,2,2, 2,1,2,2,2,2,2,2,3,1,2,2,2,1,2,1,2,2,2,1,2,1,2,1,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,3,2,2,1,2,1,2,2,2,2,1, 2,2,2,2,2,2,3,2,2,2,3,2,3,2,1,2,2,2,2,2,2,3,2,1,2,2,2,1,2,2,2,2,2,2,3,1,2,2,1,2,2,2,2,2,2,1,2,1,2,2, 2,2,1,2,1,2,2,2,2,1,2,2,1,1,2,1,2,2,2,1,2,2,2,2,1,2,2,2,2,1,2,2,2,1,2,2,2,2,2,2,3,2,2,2,2,1,2,2,2,1, 2,1,2,2,1,2,2,2,2,1,2,1,2,1,2,2,2,2,2,2,3,2,2,2,3,1,2,1,2,2,2,1,2,2,2,1,2,2,2,2,1,2,3,1,2,2,1,2,1,1, 2,2,2,1,2,1,2,2,2,1,2,2,2,2,2,2,3,1,2,2,2,2,2,2,3,2,2,2,3,1,2,2,2,1,1,1,2,1,2,2,2,2,2,2,2,2,2,2,2,1, 2,2,2,2,2,2,3,2,2,1,1,2,1,2,2,2,2,2,2,3,2,2,2,1,2,2,2,2,2,2,3,1,1,2,2,2,2,2,2,1,2,2,2,2,1,2,2,1,1,2, 2,1,2,2,2,2,2,1,2,2,2,1,2,1,2,2,1,2,2,1,2,2,2,2,2,2,3,2,2,1,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,2,2,1, 2,2,2,2,2,2,3,2,2,2,3,1,2,2,1,2,2,2,2,1,2,1,2,2,2,2,2,2,3,1,2,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2, 2,2,2,2,1,2,2,2,2,1,2,3,2,2,2,3,2,3,1,2,2,1,2,1,2,2,2,1,2,2,2,2,2,1,2,2,1,2,2,2,2,2,2,3,2,2,2,1,2,1, 2,2,2,2,2,1,2,2,2,2,1,2,2,1,2,1,2,2,2,1,2,2,2,2,2,2,1,2,1,2,2,1,2,2,1,1,2,2,2,1,2,2,2,2,2,2,2,1,2,1, 2,2,2,2,1,1,2,1,2,2,2,2,2,2,2,2,2,2,3,2,2,2,2,1,2,2,2,2,2,1,1,2,2,2,2,2,2,1,2,2,2,1,2,2,2,2,2,2,3,1, 2,2,2,1,2,2,2,2,2,1,2,2,2,2,2,2,3,1,2,2,2,2,2,1,1,2,1,1,2,1,2,2,2,2,2,2,2,1,2,2,2,2,2,1,2,2,2,2,2,2, 3,2,2,1,2,2,2,2,2,1,1,2,2,1,2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,2,2,2,3,2,2,2,3,1,1,2,1,2,2,2,2,2,2,2,2,1, 2,2,2,2,2,1,2,2,1,1,2,2,2,2,2,1,2,2,2,1,1,2,2,1,1,2,2,2,2,1,2,2,2,2,2,2,2,2,2,1,2,2,2,1,2,2,1,1,2,2, 2,2,2,2,2,2,2,2,2,2,3,2,2,1,2,2,2,2,2,2,3,1,2,2,1,2,2,1,2,2,2,2,2,2,1,1,2,2,2,1,2,2,2,2,1,2,2,2,2,1, 2,1,2,2,2,2,3,1,2,2,2,2,2,1,2,1,2,1,2,1,2,2,2,2,2,1,2,2,2,1,2,2,2,2,1,2,2,2,2,2,2,3,2,2,2,2,2,3,2,1, 2,1,1,2,2,1,2,2,2,2,2,2,1,1,2,2,1,2,2,2,2,2,2,3,2,1,2,2,2,1,2,2,2,1,2,2,2,2,2,2,1,2,2,2,2,1,2,1,2,1, 2,1,2,1,2,2,1,2,2,2,2,1,1,2,1,1,2,2,2,2,2,1,2,2,2,2,2,2,3,2,2,2,2,1,2,2,2,2,2,1,2,2,1,2,2,2,2,2,2,1, 2,2,3,2,2,1,2,2,2,2,2,2,3,2,1,1,2,2,2,1,2,2,2,2,2,2,3,2,2,1,2,1,2,2,2,2,2,1,2,2,2,1,2,2,2,1,2,2,2,1, 2,2,2,2,2,1,2,2,1,1,2,1,2,2,1,2,1,2,2,2,2,1,2,1,2,2,2,1,2,2,2,2,2,2,3,2,2,2,2,2,3,2,2,1,1,2,2,1,2,1, 2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,3,2,2,2,3,2,1,1,2,2,2,2,1,2,2,2,2,1,2,2,2,2,2,2,3,2,1,2,2,1,2,2,2,1, 2,2,2,2,1,2,2,1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,3,1,2,2,2,2,2,1,2,2,2,1,1,2,2,1,2,1,2,2,2,2,2,2,2,2,2,1, 2,2,2,2,2,2,3,2,2,1,2,1,2,1,2,2,2,2,2,2,1,2,2,2,2,1,2,2,2,1,2,2,1,2,2,1,2,2,2,2,2,1,2,1,2,2,2,2,2,1, 2,2,2,1,2,1,2,2,2,2,2,1,2,2,2,1,2,2,2,1,2,2,1,2,2,2,2,2,2,3,2,2,2,3,2,2,2,2,2,1,2,2,2,2,1,1,2,2,2,2, 2,2,2,2,1,2,2,1,1,2,2,2,2,2,2,2,2,1,2,1,2,2,2,2,2,1,2,2,1,2,2,2,2,2,2,3,2,1,2,2,2,1,2,1,1,2,2,2,2,1, 2,2,1,1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,3,2,2,2,2,2,1,2,2,1,2,1,2,1,2,2,2,2,2,1,1,2,2,2,2,2,2,1,2,2,2,2, 2,2,3,2,2,2,1,2,2,1,2,2,2,2,2,2,3,2,2,2,3,1,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,2,2,1,2,2,2,2,2,1,2,2,2,1, 1,1,2,2,2,2,2,2,2,2,1,2,2,2,2,2,1,1,2,1,2,2,2,2,2,2,2,1,2,2,3,2,2,2,2,2,1,2,2,2,2,2,2,1,2,2,2,2,2,1, 2,1,2,2,2,2,2,1,2,1,2,2,2,2,1,2,2,1,2,2,2,2,2,2,1,1,2,2,2,2,2,2,3,2,1,2,2,2,2,1,2,1,2,1,2,2,1,2,2,1, 1,2,2,1,2,2,2,2,2,1,2,2,2,2,2,2,3,2,2,2,2,2,3,2,1,2,2,1,2,2,1,2,2,2,2,2,2,2,2,1,2,2,2,1,2,2,2,2,2,2, 3,2,2,2,1,1,2,1,2,1,2,2,2,2,2,2,2,2,2,1,2,2,2,2,1,2,1,2,1,1,2,2,2,2,2,2,2,1,2,1,2,2,2,1,2,2,2,1,2,1, 2,2,2,2,2,2,2,2,2,2,3,1,2,2,2,2,2,1,1,2,2,1,2,2,2,2,2,2,2,2,2,3,1,2,2,1,2,2,2,2,2,2,3,1,1,2,2,2,2,2, 1,2,2,2,2,2,2,3,2,1,2,2,1,1,2,2,2,1,2,2,2,2,2,2,1,1,2,2,2,2,2,2,2,1,2,2,2,2,2,1,1,2,2,2,2,1,2,2,1,1); type info = record n,s: longint; end; var e: longint; a: array[1..maxe] of info; list: array[1..maxe] of longint; nlist: longint; operator +(a1,a2: info) a3: info; begin a3.n := a1.n + a2.n; a3.s := a1.s + a2.s; end; operator <(a1,a2: info) bool: boolean; begin bool := (a1.n < a2.n) or ((a1.n = a2.n) and (a1.s < a2.s)); end; procedure que1(x: longint); var i: longint; begin inc(nlist); list[nlist] := x; i := trunc(sqrt(x)); while x mod i <> 0 do dec(i); with a[x] do begin n := i + x div i; s := i; end; end; procedure que2(x: longint); var i,t: longint; begin a[x].n := maxv; a[x].s := maxv; i := 1; while (i <= nlist) and (list[i] <= x div 2) do begin t := list[i]; if (k[x - t] = 1) and (a[t] + a[x - t] < a[x]) then a[x] := a[t] + a[x - t]; inc(i); end; end; procedure que3(x: longint); var i,t: longint; begin a[x].n := maxv; a[x].s := maxv; i := 1; while (i <= nlist) and (list[i] < x) do begin t := list[i]; if (k[x - t] = 2) and (a[t] + a[x - t] < a[x]) then a[x] := a[t] + a[x - t]; inc(i); end; end; procedure solve; var i: longint; begin nlist := 0; for i := 1 to e do case k[i] of 1: que1(i); 2: que2(i); 3: que3(i); end; end; begin readln(e); solve; writeln(a[e].n, ' ', a[e].s, ' ', k[e]); end.
Code mẫu của skyvn97
#include<cstdio> #include<queue> #define MAX 10010 #define FOR(i,a,b) for (int i=(a),_b=(b);i<=_b;i=i+1) #define REP(i,n) for (int i=0,_n=(n);i<_n;i=i+1) using namespace std; const int INF=(int)1e9+7; struct Triple { int n,s,k; Triple() { n=s=k=0; } Triple(int _n,int _s,int _k) { n=_n;s=_s;k=_k; } Triple addMore(int x,int y) { return (Triple(n+x+y,s+x,k+1)); } bool operator < (const Triple &x) const { if (n!=x.n) return (n<x.n); if (s!=x.s) return (s<x.s); return (k<x.k); } }; Triple f[MAX]; int e; void process(void) { scanf("%d",&e); FOR(i,1,e) f[i]=Triple(INF,INF,INF); f[0]=Triple(0,0,0); REP(i,e) { int left=e-i; int sta=0; while (sta*sta<=left) sta++; sta--; FOR(j,max(1,sta-25),sta) FOR(k,j,left/j) f[i+j*k]=min(f[i+j*k],f[i].addMore(j,k)); } printf("%d %d %d\n",f[e].n,f[e].s,f[e].k); } int main(void) { process(); return 0; }
Bình luận