Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

为什么这样会RE???求助 对拍过了程序答案是对的。

Posted by poaspoas5 at 2010-11-30 14:55:52 on Problem 3193
var
	book,q:array [1..1000] of string;
	m,n,ans,i,j,k,tot:longint;
	t1,t2:string;

procedure swap(var a,b:string);
var
	t:string;
begin
	t:=a;	a:=b;	b:=t;
end;

procedure qsort1(l,r:longint);
var
	il,ir:longint;
	mid:string;
begin
	il:=l;	ir:=r;	mid:=book[(l+r) shr 1];
	repeat
		while book[il]<mid do inc(il);
		while book[ir]>mid do dec(ir);
		if il<=ir then
		begin
			swap(book[il],book[ir]);
			inc(il);	dec(ir);
		end;
	until il>ir;
	if il<r then qsort1(il,r);
	if ir>l then qsort1(l,ir);
end;

procedure qsort2(l,r:longint);
var
	il,ir:longint;
	mid:string;
begin
	il:=l;	ir:=r;	mid:=q[(l+r) shr 1];
	repeat
		while q[il]<mid do inc(il);
		while q[ir]>mid do dec(ir);
		if il<=ir then
		begin
			swap(q[il],q[ir]);
			inc(il);	dec(ir);
		end;
	until il>ir;
	if il<r then qsort2(il,r);
	if ir>l then qsort2(l,ir);
end;

begin
	readln(m,n);
	for i:=1 to m do readln(book[i]);
	for i:=1 to n do readln(q[i]);

	qsort1(1,m);
	qsort2(1,n);

	ans:=0;
	i:=1;	j:=1;
 	while (i<=m) and (j<=n) do
	begin
		t1:=copy(book[i],1,length(q[j]));
		t2:=q[j];
		if t1=t2 then
		begin
			tot:=0;
			for k:=j to n do
			begin
				t1:=copy(book[i],1,length(q[k]));
				t2:=q[k];
				if t1<>t2 then break;
				inc(tot);
			end;
			inc(ans,tot);
			inc(i);	j:=k;
                        if (j=n) and (t1=t2) then inc(j);
		end
		else if t1<t2 then inc(i)
		else if t1>t2 then inc(j);
	end;

	writeln(ans);
end.

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator