结构体里的vector如何排序(就是将此打印机需要打印的文件目录按从小到大排序)
struct dy{
int wt;
vector <int> xd;
}b[maxn];
它对样列一的解释为: 故三台打印机分别打印了编号为
[ 1 , 2 ] , [ 3 ] , [ ] [1,2],[3],[] 的文件
那为啥输出为
2 1 2
1 3
0
不应该为
1 1 2
2 3
0 吗???
#include <bits/stdc++.h>
using namespace std;
const int maxn=2e5+5;
int n=0,m=0;
struct wj{
int v;//存文件目录名
int t;//需要打印时间
int x;//下发时间
}a[maxn];
struct dy{
int wt;//存储下次能打印的时间
vector <int> xd;//存打印文件的目录名
}b[maxn];
int cmp(wj a,wj b){
return a.x<b.x;
}
void read(){
cin>>n>>m;
for(int i=1;i<=n;++i){
cin>>a[i].t>>a[i].x;
a[i].v=i;
}
sort(a+1,a+n+1,cmp);
for(int i=1;i<=n;++i){
for(int j=1;j<=m;++j){
if(a[i].x>=b[j].wt){//到达该打印机能打印的时间就打印
b[j].wt=a[i].x+a[i].t;
b[j].xd.push_back(a[i].v);
break;
}
}
}
for(int i=1;i<=m;++i){
if(!b[i].xd.empty()){
cout<<i<<" ";
for(int j=0;j<b[i].xd.size();++j){
cout<<b[i].xd[j];
cout<<" ";
}
cout<<endl;
}
else {
cout<<"0"<<endl;
}
}
}
int main(){
read();
return 0;
}