读书人

会场安排有关问题-洗澡回来希望可以看

发布时间: 2012-10-18 13:46:55 作者: rapoo

会场安排问题---洗澡回来希望可以看到得到解决
http://acm.nyist.net/JudgeOnline/problem.php?pid=14
题目在这个链接里面,下面的程序是我写的,
求解哪里出问题,提交都是WA!在些先说声谢谢!
#include <iostream>
#include <algorithm>
#include <cstdio>
using namespace std;

struct Activity
{
int begin;//活动开始时间
int end; //活动结束时间
};

int compare(const void *p1, const void *q1)
{
Activity *p = (Activity *)p1;
Activity *q = (Activity *)q1;

return p->end > q->end ? 1 : -1;
}

int main()
{
int sample;
cin >> sample;

while (sample--)
{
int nNumOfAct;
cin >> nNumOfAct;//活动数量

Activity *act = new Activity[nNumOfAct];
for (int i = 0; i < nNumOfAct; i++)
scanf("%d %d", &act[i].begin, &act[i].end);

qsort(act, nNumOfAct, sizeof(Activity), compare); //从小到大排序

int cnt = 1, i, j;//至少能安排一个活动
int e = act[0].end;
for (i = 1; i < nNumOfAct; i++)
{
if (act[i].begin == act[i].end)
continue;//如果开始与结束的时候相同,那么就不能安排
else if (act[i].begin > e)
{
cnt++;
e = act[i].end;
}

}
cout << cnt << endl;
delete []act;
}
return 0;
}


[解决办法]
不喜欢AMC啊 但是还是顶一下

读书人网 >C++

热点推荐