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

一个比较屌丝的代码,终于AC了。⊙﹏⊙b汗

Posted by 1017981912 at 2014-10-02 22:37:45 on Problem 1002
const
	map:array['A'..'Z'] of char=('2','2','2','3','3','3','4','4','4','5','5','5','6','6','6','7','7','7','7','8','8','8','9','9','9','9');
	//shu:array[1..7] of longint=(1000000,100000,10000,1000,100,10,1);
	
type
	arr=array[1..300] of char;
var
	data:array[1..100001] of ansistring;
	s:ansistring;
	i,n,num,j:longint;
	flag:boolean;
	
procedure qsort(h,t:longint);
var
	m,tmp:ansistring;
	i,j:longint;
begin
	m:=data[(h+t) div 2];
	i:=h;
	j:=t;
	repeat
		while data[i]<m do inc(i);
		while data[j]>m do dec(j);
		if i<=j then
		begin
			tmp:=data[i];
			data[i]:=data[j];
			data[j]:=tmp;
			inc(i);
			dec(j);
		end;
	until i>j;
	if h<j then qsort(h,j);
	if i<t then qsort(i,t);
end;

procedure hash(j:longint);
var
	i:longint;
	c:string;
begin
	c:='';
	for i:=1 to length(s) do
		if s[i]<>'-' then
		begin
			if s[i] in ['0'..'9'] then c:=c+s[i]
			else if (s[i]<>'Q') and (s[i]<>'Z') and (s[i] in ['A'..'Z']) then c:=c+map[s[i]];
		end;
	data[j]:=c;
end;

begin
	readln(n);
	for i:=1 to n do
	begin
		readln(s);
		hash(i);
	end;
	qsort(1,n);
	i:=1;
	flag:=true;
	while i<n do
	begin
		num:=1;
		while data[i]=data[i+1] do
		begin
			inc(num);
			inc(i);
		end;
		if num>1 then 
		begin
			writeln(data[i,1],data[i,2],data[i,3],'-',data[i,4],data[i,5],data[i,6],data[i,7],' ',num);
			flag:=false;
		end;
		inc(i);
	end;
	if flag then writeln('No duplicates.');
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