社区讨论

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 条回复,欢迎继续交流。

正在加载回复...