hdu 3650 Hot Expo

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <algorithm>

 

using namespace std;

#define MAXN 111

struct TNode
{
    int beg;
    int end;
};
TNode vTime[MAXN];

bool visited[MAXN];

inline bool myCmp(const TNode &t1, const TNode &t2)
{
    //wrong:
     //if(t1.end != t2.end) return t1.end < t2.end;
     //else return t1.beg < t2.beg;
    if(t1.beg != t2.beg) return t1.beg < t2.beg;
    else return t1.end < t2.end;
}


int main()
{
#ifndef ONLINE_JUDGE
    freopen("indata.txt", "r", stdin);
#endif

    int n;
    while(scanf("%d", &n), n)
    {
        int i, j;
        for(i = 0; i < n; i++)
        {
            scanf("%d %d", &vTime[i].beg, &vTime[i].end);
        }
        sort(vTime, vTime + n, myCmp);
        memset(visited, 0, sizeof(visited));

        int cityNum = n;
        int ans = 0;
        while(cityNum > 0)
        {
            ans++;
            int preEnd;
            for(i = 0; i < n; i++)
            {
                if(!visited[i])
                {
                    cityNum--;
                    visited[i] = true;
                    preEnd = vTime[i].end;
                    break;
                }
            }

            if(cityNum <= 0) break;

            for(j = i + 1; j < n; j++)
            {
                if(!visited[j] && preEnd < vTime[j].beg)
                {
                    cityNum--;
                    visited[j] = true;
                    preEnd = vTime[j].end;
                }
            }
        }
        printf("%d\n", ans);
    }
    return 0;
}

posted @ 2010-10-31 17:18  菜到不得鸟  阅读(100)  评论(0)    收藏  举报