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

我真的没辙了。

Posted by Esmool at 2005-10-03 19:42:14 on Problem 1006
无论是同一输出还是单个输出,输出结果包含不包含边界情况我都测试过了,底下都对了,但是提交了却没有一个通过的。真是郁闷阿~!各位帮忙看看到底怎么错了?我看我的算法还算是比较快的呢,结果还是这样,郁闷阿~~多谢了~!

另: 我从来没有写过c的程序,所以不太规范,请多多见谅~

# include <stdio.h>
# include <stdlib.h>
# define LEN sizeof(struct Node)

struct Node {
	int p,e,i,d,n;
	struct Node * next;
};
struct Node * head;
int seat[21253]={0};

int Count(struct Node * p) {
	int i,tmp=0,min=21252;
	for (i=1;i<=645;i++) {
		tmp = 33 * i + p->i - p->d;
		if ((tmp+p->d-p->p) % 23 == 0 && (tmp+p->d-p->e) % 28 == 0 && tmp>0 && tmp<=min) {
			min = tmp;
			break;
		}
	}
	p->n = min;
	return 1;
}

int main() {
	int p=0,e=0,i=0,d=0;
	struct Node * ins, * current;
	head = malloc(LEN);
	head->next = NULL;
	ins = current = head;
	while (p!=-1 && e!=-1 && i!=-1 && d!=-1) {
		scanf("%d%d%d%d",&p,&e,&i,&d);
		ins = malloc(LEN);
		current->next = ins;
		ins->next = NULL;
		ins->p = p;
		ins->e = e;
		ins->i = i;
		ins->d = d;
		ins->n = 21252;
		current = ins;
		Count(current);
	}
	current = head->next; i=0;
	while (current->next!=NULL) {
		printf("Case %d: the next triple peak occurs in %d days.\n",++i,current->n);
		current = current->next;
	}
	return 1;
}


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