2015年2月28日 星期六

[UVA] 12694 - Meeting Room Arrangement

#include<bits/stdc++.h>
using namespace std;
struct P{
    int x,y;
};
int cmp(P a,P b){
    return a.y<b.y;
}
int main(){
    int t,n,m,x,y,i,j;
    scanf("%d",&t);
    while(t--){
        vector<P> arr;
        while(scanf("%d%d",&x,&y) && x+y){
            arr.push_back((P){x,y});
        }
        sort(arr.begin(),arr.end(),cmp);
        int dp[15]={0};
        for(i=1,j=0;i<=10;i++){
            dp[i]=dp[i-1];
            while(j<arr.size() && arr[j].y==i){
                dp[i]=max(dp[i],dp[arr[j].x]+1);
                j++;
            }
        }
        printf("%d\n",dp[10]);
    }
}

沒有留言:

張貼留言