社区讨论

求问

P14958「KWOI R1」Permutation Problem参与者 2已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@mk9vyc8g
此快照首次捕获于
2026/01/11 23:25
上个月
此快照最后确认于
2026/01/16 13:45
上个月
查看原帖
对a排序删掉过了30pts(subtask 0 1 3) 加上就WA一大片,剩10pts
CPP
#include <bits/stdc++.h>
using namespace std;
#define pb(a) push_back(a)
typedef long long ll;
vector<int> a,b;
set<ll> kk;
int main(){
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);
    int n;
    ll k;
    cin >> n;
    for(int i=1;i<=n;i++) {cin >> k;a.pb(k);b.pb(i);}
    sort(a.begin(),a.end());
    int f = 0,l;
    do{
        kk.clear();
        int ff = 1;
        for(int i=0;i<n;i++) {
            l = kk.size();
            kk.insert(1LL*a[i]*b[i]);
            if(kk.size()==l) {ff=0;break;}
        }
        if(ff) {f = 1;break;}
    }while(next_permutation(b.begin(),b.end()));
    if(f) for(auto it=b.begin();it!=b.end();it++) cout << *it << ' ';
    else cout << -1;
}

回复

2 条回复,欢迎继续交流。

正在加载回复...