首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2012-10-18 
会场安排问题---洗澡回来希望可以看到得到解决http://acm.nyist.net/JudgeOnline/problem.php?pid14题目

会场安排问题---洗澡回来希望可以看到得到解决
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啊 但是还是顶一下

热点排行