| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
hahavar
a:array[0..7775] of longint;
i,n,m,i1,i2,i3,i4,i5,p,j,l1,l2,pl,k,k2:integer;
r:array[1..5,1..3] of integer;
r1:array[1..5] of integer=(1,6,36,216,1296);
r2:array[1..5] of integer;
r3:array[1..999] of integer;
r4:array[1..5] of integer;
bo:boolean;
function ans(x:integer):integer;
var
g:integer;
begin
g:=1; ans:=0;
while x>0 do
begin
ans:=ans+r[g,3]*(x div r1[n-g+1]);
x:=x mod r1[n-g+1];
g:=g+1;
end;
end;
function doit1:integer;
var i6:integer;
begin
doit1:=0;
for i6:=1 to n do
doit1:=doit1+r4[i6]*r1[n-i6+1];
end;
function doit2:integer;
var i6:integer;
begin
doit2:=0;
for i6:=1 to n do
doit2:=doit2+(r4[i6]+r2[i6])*r1[n-i6+1];
end;
begin
fillchar(a,sizeof(a),0);
fillchar(r3,sizeof(r3),0);
fillchar(r,sizeof(r),0);
readln(n);
for i:=1 to n do
begin
readln(r[i,1],r[i,2],r[i,3]);
r3[r[i,1]]:=i;
end;
k2:=0;
for i:=1 to n do
k2:=k2+r[i,2]*r1[n-i+1];
for k:=1 to k2 do
a[k]:=ans(k);
readln(m);
for i:=1 to m do
begin
bo:=true;
fillchar(r2,sizeof(r2),0);
read(p);
for j:=1 to p do
begin
read(l1,l2);
if r[r3[l1],2]<l2 then begin bo:=false;break;end;
r2[r3[l1]]:=l2;
end;
readln(pl);
if bo then
for i1:=0 to r[1,2]-r2[1] do
for i2:=0 to r[2,2]-r2[2] do
for i3:=0 to r[3,2]-r2[3] do
for i4:=0 to r[4,2]-r2[4] do
for i5:=0 to r[5,2]-r2[5] do
begin
r4[1]:=i1;r4[2]:=i2;r4[3]:=i3;r4[4]:=i4;r4[5]:=i5;
if a[doit1]+pl<a[doit2] then
begin
a[doit2]:=a[doit1]+pl;
end;
end;
end;
writeln(a[k2]);
end.
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator