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 了,好心人给帮测试一下,发现错误后请致函Happy_Baby_Me@163.com,谢谢

Posted by 123454321 at 2006-11-03 15:20:10 on Problem 2751
#include <iostream>
#include <stdio.h>
#include <algorithm>
using namespace std;

struct xxx
{
	int a,b;
}task[10005],s1[10005],s2[10005];

bool cmp1(struct xxx u,struct xxx v)
{
	if(u.a<v.a)
		return true;
	return false;
}
bool cmp2(struct xxx u,struct xxx v)
{
	if(u.b>v.b)
		return true;
	return false;
}

int main()
{
	int n,i,j,k;
	while(scanf("%d",&n)&&n)
	{
		j=0,k=0;
		for(i=0;i<n;i++)
		{
			scanf("%d%d",&task[i].a,&task[i].b);
			if(task[i].a<task[i].b)
			{
				s1[j].a=task[i].a;
				s1[j++].b=task[i].b;
			}
			else 
			{
				s2[k].a=task[i].a;
				s2[k++].b=task[i].b;
			}
		}
		sort(s1,s1+j,cmp1);
		sort(s2,s2+k,cmp2);

		int restime=0,sum=0;
		for(i=0;i<j;i++)
		{
			if(i==0)
			{
				sum+=s1[i].a+s1[i].b;
				restime=s1[i].b;
				continue;	
			}
			if(s1[i].a>=restime)
			{
				sum+=(s1[i].a-restime)+s1[i].b;
				restime=s1[i].b;
			}
			else if(s1[i].a<restime)
			{
				sum+=s1[i].b;
				restime=restime+s1[i].a+s1[i].b;
			}
		}
		for(i=0;i<k;i++)
		{
			if(s2[i].a>=restime)
			{
				sum+=(s2[i].a-restime)+s2[i].b;
				restime=s2[i].b;
			}
			else 
			{
				restime=restime-s2[i].a+s2[i].b;
				sum+=s2[i].b;
			}
		}
		printf("%d\n",sum);
	}
	return 0;
}

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