HEU 5039 Move Woods
1
/**************************************
2
Problem: HEU 5039 Move Woods
3
Time: 0.0050 s
4
Memory: 240 k
5
Accepted Time: 2009-03-31 11:33:12
6
Tips: 两个关键字排序
7
**************************************/
8
#include <stdio.h>
9
int main()
10
{
11
int tt;
12
scanf("%d",&tt);
13
while(tt--)
14
{
15
int n,i,j,k,a[300],b[300],c[300],temp,sum=0;
16
scanf("%d",&n);
17
if(n==0){printf("0\n");continue;}
18
for(i=0;i<n;i++)
19
{
20
scanf("%d%d",&a[i],&b[i]);
21
c[i]=0;
22
}
23
for(i=0;i<n-1;i++)
24
{
25
for(j=n-1;j>i;j--)
26
{
27
if(a[j]<a[j-1])
28
{
29
temp=a[j];
30
a[j]=a[j-1];
31
a[j-1]=temp;
32
temp=b[j];
33
b[j]=b[j-1];
34
b[j-1]=temp;
35
}
36
else if(a[j]==a[j-1]&&b[j]<b[j-1])
37
{
38
temp=b[j];
39
b[j]=b[j-1];
40
b[j-1]=temp;
41
}
42
}
43
}
44
for(i=0;i<n;i++)
45
{
46
if(c[i]==0)
47
{
48
k=b[i];
49
c[i]=1;
50
for(j=i+1;j<n;j++)
51
{
52
if(c[j]==0&&k<=b[j])
53
{
54
k=b[j];
55
c[j]=1;
56
}
57
}
58
sum++;
59
}
60
}
61
printf("%d\n",sum);
62
}
63
return 0;
64
}
65
/**************************************2
Problem: HEU 5039 Move Woods3
Time: 0.0050 s4
Memory: 240 k 5
Accepted Time: 2009-03-31 11:33:126
Tips: 两个关键字排序 7
**************************************/8
#include <stdio.h>9
int main()10
{11
int tt;12
scanf("%d",&tt);13
while(tt--)14
{15
int n,i,j,k,a[300],b[300],c[300],temp,sum=0;16
scanf("%d",&n);17
if(n==0){printf("0\n");continue;}18
for(i=0;i<n;i++)19
{20
scanf("%d%d",&a[i],&b[i]);21
c[i]=0;22
}23
for(i=0;i<n-1;i++)24
{25
for(j=n-1;j>i;j--)26
{27
if(a[j]<a[j-1])28
{29
temp=a[j];30
a[j]=a[j-1];31
a[j-1]=temp;32
temp=b[j];33
b[j]=b[j-1];34
b[j-1]=temp;35
}36
else if(a[j]==a[j-1]&&b[j]<b[j-1])37
{38
temp=b[j];39
b[j]=b[j-1];40
b[j-1]=temp;41
}42
}43
}44
for(i=0;i<n;i++)45
{46
if(c[i]==0)47
{48
k=b[i];49
c[i]=1;50
for(j=i+1;j<n;j++)51
{52
if(c[j]==0&&k<=b[j])53
{54
k=b[j];55
c[j]=1;56
}57
}58
sum++;59
}60
}61
printf("%d\n",sum);62
}63
return 0;64
}65




浙公网安备 33010602011771号