社区讨论
最后一个点T了求调
P3540[POI 2012] SQU-Squarks参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mhjabe21
- 此快照首次捕获于
- 2025/11/03 23:18 4 个月前
- 此快照最后确认于
- 2025/11/03 23:18 4 个月前
CPP
#include <bits/stdc++.h>
using namespace std;
const int N = 9e4+5;
int n,m,x[N];
vector<int> a;
vector<vector<int> > ans;
int main()
{
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
cin>>n;
m=n*(n-1)>>1;
for(int i=1;i<=m;i++) cin>>x[i];
sort(x+1,x+m+1);
a.resize(n+1);
for(int k=3;k<=n;k++){
if(x[k]==x[k-1]) continue;
a[1]=(x[1]+x[2]-x[k])>>1;
a[2]=x[1]-a[1],a[3]=x[2]-a[1];
if(a[1]<=0 || a[2]<=0 || a[3]<=0) continue;
multiset <int> s;
for(int i=3;i<=m;i++) if(i!=k) s.insert(x[i]);
int f=0;
for(int i=4;i<=n && !f;i++){
a[i]=(*s.begin())-a[1];
if(a[i]<=0) f=1;
for(int j=1;j<i && !f;j++){
if(s.find(a[i]+a[j]) == s.end()) f=1;
else s.erase(s.find(a[i]+a[j]));
}
}
if(f) continue;
ans.push_back(a);
}
cout<<ans.size()<<endl;
for(int i=0;i<ans.size();i++){
for(int j=1;j<=n;j++) cout<<ans[i][j]<<' ';
cout<<endl;
}
return 0;
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...