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:为什么会output limit exceed?

Posted by anonym11 at 2004-10-12 16:06:30 on Problem 1886
In Reply To:为什么会output limit Posted by:anonym11 at 2004-10-12 16:05:50
代码如下:
#include<iostream>
#include<cstring>
using namespace std;

struct book {
	char title[100];
	char author[100];
	int b;
	int r;
}bk[500],t;

int main()
{
	char temp[300],cmd[10],title[100];
	int i,j,p= 0,first;
	while(1)
	{
		gets(temp);
		if(strcmp(temp,"END") == 0)
			break;
		for(i = 1,j = 0;temp[i] - '"';i ++,j ++)
			bk[p].title[j] = temp[i];
		bk[p].title[i-1] = '\0';
		for(i += 5,j = 0;temp[i] ;i ++,j ++)
			bk[p].author[j] = temp[i];
		bk[p].author[j] = '\0';
		cout << bk[p].author << ' ' << bk[p].title << endl;
		bk[p].b = bk[p].r = 0;
		p ++;
	}
	for(i = p-1;i > 0;i --)
		for(j = 0;j < i;j ++)
			if(strcmp(bk[j].author,bk[j+1].author) > 0 || 
				(strcmp(bk[j].author,bk[j+1].author) == 0 && strcmp(bk[j].title ,bk[j+1].title ) > 0))
			{
				t = bk[j];bk[j] = bk[j+1];bk[j+1] = t;
			}
			while(1){
				gets(temp) ;
				if(strcmp(temp,"END") == 0)
					break;
				for(i = 0;i < 6;i ++)
					cmd[i] = temp[i];
				cmd[i] = '\0';
				if(cmd[0] == 'B')
				{
					for(i = 8,j = 0;temp[i+1] ;i ++,j ++)
						title[j] = temp[i] ;
					title[j] = '\0';
					for(i = 0;i < p;i ++)
						if(strcmp(bk[i].title ,title) == 0)
						{
							bk[i].b = 1;
							break;
						}
				}
				else
					if(cmd[0] == 'R')
					{
						for(i = 8,j = 0;temp[i+1] ;i ++,j ++)
							title[j] = temp[i] ;
						title[j] = '\0';
						for(i = 0;i < p;i ++)
							if(strcmp(bk[i].title ,title) == 0)
							{
								bk[i].b = 0;bk[i].r = 1;
								break;
							}
					}
					else
						if(cmd[0] == 'S')
							for(i = 0,first = 1;i < p;i ++)
							{
								if(bk[i].r == 1 )
									if(first)
										printf("Put \"%s\" first\n",bk[i].title);
									else
										printf("Put \"%s\" after \"%s\"\n",bk[i].title,title);
								if(!bk[i].b)
								{
									strcpy(title,bk[i].title);
									first = 0;
								}
							}
			}
			cout << "END" << endl;
			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