社区讨论
20pts求调
P13239 「2.48sOI R1」化妆品参与者 2已保存回复 3
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 3 条
- 当前快照
- 1 份
- 快照标识符
- @mhjiaqyb
- 此快照首次捕获于
- 2025/11/04 03:01 4 个月前
- 此快照最后确认于
- 2025/11/04 03:01 4 个月前
vector+结构体,不知道为啥第二组全错,最后几组全超时,只对了2组
CPP#include <bits/stdc++.h>
using namespace std;
int n,m,ans1,ans2,ans3,ans4,z[1000001];
struct node{
int x,y;
};
vector<node> v;
bool cmp(node a,node b) {
return a.x<b.x;
}
bool cmp2(node a,node b) {
return a.y<b.y;
}
int main() {
cin>>n;
for(int i=1;i<=2*n;i++) cin>>z[i];
for(int i=1;i<=2*n;i++) {
int a;
cin>>a;
v.push_back({z[i], a});
}
for(int i=1;i<=n;i++){
cin>>m;
if(m==1) sort(v.begin(),v.end(),cmp);
else if(m==2) sort(v.begin(), v.end(), cmp2);
auto v1=v.back();
auto v2=v.front();
ans1+=v1.x;
ans2+=v1.y;
ans3+=v2.x;
ans4+=v2.y;
v.pop_back();
v.erase(v.begin());
}//为啥会超时,这不是O(n)吗
cout<<ans1<<" "<<ans2<<endl<<ans3<<" "<<ans4;
}
回复
共 3 条回复,欢迎继续交流。
正在加载回复...