package demo2;
import java.util.Arrays;
import java.util.Scanner;
public class P124 {
//区间调度问题,例如同时只能做一件工作(结束和开始瞬间重合也不行),问互相冲突的工作中最多能做几件
//思路:贪心策略,每次取最早结束的工作。
//自定义类Job,方便按结束时间对工作排序
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int[] sArr=new int[n];
int[] eArr=new int[n];
Job[] jArr=new Job[n];
for(int i=0;i<n;i++) {
sArr[i]=sc.nextInt();
}
for(int i=0;i<n;i++) {
eArr[i]=sc.nextInt();
}
for(int i=0;i<n;i++) {
jArr[i]=new Job(sArr[i],eArr[i]);
}
Arrays.sort(jArr);
int result=func(jArr);
System.out.println("最多完成"+result+"件工作");
}
static int func(Job[] jArr) {
int cnt=1;
int endTime=jArr[0].end;
for(int i=1;i<jArr.length;i++) {
if(jArr[i].start>endTime) {
cnt++;
endTime=jArr[i].end;
}
}
return cnt;
}
}
class Job implements Comparable<Job>{
int start;
int end;
public Job(int start,int end) {
this.start=start;
this.end=end;
}
@Override
public int compareTo(Job other) {
int x=this.end-other.end;
if(x==0) {
return this.start-other.end;
}
else {
return x;
}
}
}