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

大家帮忙看看啊,1002问题

Posted by xiaomi7732 at 2005-09-04 08:35:15 on Problem 1002
算法先不考虑,我就想提交成功一个。源代码如下,本地测试通过,但是提供却WA。晕~

#include <iostream>
#include <stdlib.h>
#include <string>
#include <fstream>

using namespace std;

string cvt(string);
void out(string s,int n);
//start
struct Node{
	string numStr;
	int cnt;
	Node * next;
};
Node * create(void){
	string nowStr;
	long i;
    int n;
	Node * p, * q, *r, * head;
	cin>>n;//read lines.
	head=new Node;
	head->next=NULL;
	for(i=0;i<n;i++){
		cin>>nowStr;
		nowStr=cvt(nowStr);
		
		p=new Node;
		p->next=NULL;
		p->cnt=1;
		p->numStr=nowStr;

		r=head;
		q=r->next;

		if(q==NULL){		//empty list
			r->next=p;
			p->cnt=1;
		}else{				//not empty
			while((q!=NULL)&&(q->numStr<p->numStr)){
				r=q;
				q=q->next;
			}
			if(q==NULL){		//insert to tail
				p->cnt=1;
				p->next=NULL;
				r->next=p;
			}else if(q->numStr==p->numStr)	//increase cnt
				q->cnt++;
			else{				//insert into mid
				p->cnt=1;
				p->next=q;
				r->next=p;
			}
		}
	}
	return head;
}

string cvt(string srce){
    //convert anything into the from of xxxxxxx(7 numbers)
    int i,j,n;
	i=0;j=0;n=0;
	string res("0000000");
	res[0]=srce[0];
    n=srce.length();
	for(i=0;i<n;i++){
		switch(srce[i]){
		case 'A': case 'B': case 'C':	res[j++]='2';break;
		case 'D': case 'E': case 'F':	res[j++]='3';break;
		case 'G': case 'H': case 'I':	res[j++]='4';break;
		case 'J': case 'K': case 'L':	res[j++]='5';break;
		case 'M': case 'N': case 'O':	res[j++]='6';break;
		case 'P': case 'R': case 'S':	res[j++]='7';break;
		case 'T': case 'U': case 'V':	res[j++]='8';break;
		case 'W': case 'X': case 'Y':	res[j++]='9';break;
		case '-': case ' ':break;
		default:	res[j++]=srce[i];
		}
	}
	return res;
}


void out(string s,int n){
	int i;
	for(i=0;i<3;i++) cout<<s[i];
	cout<<'-';
	for(i=3;i<8;i++) cout<<s[i];
    cout<<n<<endl;
}

void prtlist(Node * head){
	Node * p;
	p=head->next;
	while((p!=NULL)&&(p->cnt<=1)){
		p=p->next;
	}
	if(p!=NULL){
		while(p!=NULL){
			if(p->cnt>1) out(p->numStr,p->cnt);
			p=p->next;
		}
	}else{
		cout<<"No duplicates.\n";
	}

/*	while(p!=NULL){
		out(p->numStr,p->cnt);
		p=p->next;
	}
*/
}
int main()
{
	Node * head;
	head=create();
	prtlist(head);
  return 0;
}

是不是格式上有什么问题还是怎么的?要是TE也就算了,问题是WA啊。

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