1 条题解
-
0
C++ :
#include<bits/stdc++.h> using namespace std; struct node{ int w,id; }m[1000000]; int a[1000000],b[1000000],t[1000000]; int ans,n; int cmp(node a,node b){ return a.w<b.w; } int main(){ cin>>n; for(int i=1;i<=n;i++) cin>>a[i]; for(int i=1;i<=n;i++) cin>>b[i]; for(int i=1;i<=n;i++){ m[i].w=min(a[i],b[i]); m[i].id=i; } sort(m+1,m+n+1,cmp); ans=0; int l=0,r=n+1,t1=0,t2=0; for(int i=1;i<=n;i++){ if(m[i].w==a[m[i].id]) t[++l]=m[i].id; else t[--r]=m[i].id; } for(int i=1;i<=n;i++){ t1+=a[t[i]]; if(t2<t1) t2=t1; t2+=b[t[i]]; } cout<<t2<<endl; for(int i=1;i<=n;i++) cout<<t[i]<<" "; }
- 1
信息
- ID
- 1048
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 10
- 标签
- 递交数
- 4
- 已通过
- 1
- 上传者