题目描述:
某工厂的加工车间里,n个不同的产品在由两台机器M1和M2组成的流水线上完成加工。每个产品i必须先在M1上然后在M2上加工,时间分别是ai和bi,为了减少时间降低成本,厂长请编程社的大神们确定n个产品的加工顺序,使得从第一个产品开始在M1上加工到最后一个产品在M2上加工完成的这段所需时间尽量少。
输入格式:
共n+1行
第一行:一个n,表示产品数量(1≤n≤100)
后n行:每行分别输入该产品在M1和M2上的加工时间,用空格分开(1≤ai,bi≤100)
输出格式:
从第一个产品开始在M1上加工到最后一个产品在M2上加工完成的这段所需时间的最小值
样例输入:
5
1 4
3 3
4 5
2 6
7 1
样例输出:
20
代码:
#include<bits/stdc++.h>
using namespace std;
const int MAXN=25005;
int n,x,y;
int lena,lenb,sum1,sum2;
struct node{int l,r;}a[MAXN],b[MAXN];
bool cmp1(node x,node y){return x.r<y.r;}
bool cmp2(node x,node y){return x.l>y.l;}
int main(){