HDOJ 2037今年の夏休みはAC(C言語)ではありません.

1059 ワード

テーマリンク:http://acm.hdu.edu.cn/showproblem.php?pid=2037
テーマは経典の活動の手配問題で、終わる時間の昇順によって並べ替えて、できるだけ早く終わることをして、更に多くの時間を残して残りの事に残します.番組の終わる時間によって並べ替えを行った後に、段階的な貪欲なアルゴリズムを使って最適な解を求めることができます.
#include <stdio.h>
struct TV
{ 
int s,e; 
}t[101],temp; 

int main()
{
int n, sum, end, i, j; 
while(scanf("%d",&n) && n)
{ 
for(i=0; i < n; i++)
{ 
scanf("%d%d",&t[i].s,&t[i].e); 
}
for(i = 0; i < n; i++) //               
for(j = i; j < n; j++)
{
if(t[i].e > t[j].e)
{
temp = t[i];
t[i] = t[j];
t[j] = temp;

}
}

sum = 1; //                
end = t[0].e; 
for(i = 1; i < n; i++)
{ 
if(t[i].s >= end)
{ 
sum++; 
end = t[i].e; 
} 
} 
printf("%d
",sum); } return 0; }