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

牛人帮我看看为什么会WA.样例过了。

Posted by ACM05002 at 2005-08-04 20:44:43 on Problem 2524
void main()
{ struct person
  { struct person *next;
    struct person *last;
    int group;
  }per[50001],*temp;
  long n,m,i,believe,g,c,x,y;
  for(c=1;;c++)
  { scanf("%ld%ld",&n,&m);
    if(n==0&&m==0)
      break;
    believe=n;
    g=0;
    for(i=1;i<=n;i++)
      per[i].group=0;
    for(i=0;i<m;i++)
    { scanf("%ld%ld",&x,&y);
        if(per[x].group==0&&per[y].group==0)
	{ believe--;
	  g++;
          per[x].group=g;
	  per[y].group=g;
          per[x].next=&per[y];
          per[y].next=&per[x];
          per[x].last=&per[y];
          per[y].last=&per[x];
        }
	else if(per[x].group!=0&&per[y].group==0)
	{ believe--;
          per[y].group=per[x].group;
          per[y].next=per[x].next;
          per[y].last=&per[x];
          per[x].next=&per[y];
	  per[y].next->last=&per[y];
        }
        else if(per[x].group==0&&per[y].group!=0)
	{ believe--;
          per[x].group=per[y].group;
          per[x].next=per[y].next;
          per[x].last=&per[y];
          per[y].next=&per[x];
	  per[x].next->last=&per[x];
        }
        else if(per[x].group!=per[y].group)
	{ believe--;
          temp=per[x].next;
          per[x].next=per[y].next;
          per[y].next=temp;
          temp=per[x].last;
          per[x].last=per[y].last;
          per[y].last=temp;
          temp=per[x].next;
	  while(temp->group!=per[x].group)
	  { temp->group=per[x].group;
	    temp=temp->next;
          }
	}
    }
    printf("Case %ld: %ld\n",c,believe);
  }
}

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