Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
134066 凌艺樽 加工生产调度 C++ 运行出错 25 0 MS 272 KB 1241 2024-03-02 13:04:48

Tests(3/12):


#include <iostream> #include <fstream> #include <algorithm> using namespace std; const int N=50; class Job { public: int index, time; bool M; }; bool cmp(Job a,Job b){ return a.time<b.time; } int* Johnson(int n,int a[],int b[],int best[]){ int i,j,k,t; Job *Min =new Job[n]; for(i=0;i<n;i++){ if(a[i]<b[i]){ Min[i].M =true; Min[i].time =a[i]; } else{ Min[i].M=false; Min[i].time=b[i]; } Min[i].index=i; } sort(Min, Min+n, cmp); j=0,k=n-1; for(i=0;i<n;i++){ if(Min[i].M ==true) best[j++]=Min[i].index; else best[k--]=Min[i].index; } t=a[best[0]]; k=t+b[best[0]]; for(j=1;j<n;j++){ t=t+a[best[j]]; k= t<k ? k+b[best[j]] : t+b[best[j]]; } best[i+1]=k; delete Min; return best; } int main() { int i,n,a[N],b[N],best[N]; cin>>n; for(i=0;i<n;i++) cin>>a[i]; for(i=0;i<n;i++) cin>>b[i]; Johnson(n,a,b,best); cout<<best[i+1]<<'\n'; for(i=0;i<n;i++) { cout<<best[i]+1<<" "; } cout<<endl; return 0; }


测评信息: