当前位置:网站首页>uva1325
uva1325
2022-08-05 05:03:00 【Knife stabs the bear】
#include <iostream>
#include <istream>
#include <sstream>
#include <vector>
#include <stack>
#include <list>
#include <map>
#include <set>
#include <deque>
#include <queue>
#include <cstring>
#include <unordered_map>
#include <unordered_set>
#include <algorithm>
#include <numeric>
#include <chrono>
#include <ctime>
#include <cmath>
#include <cctype>
#include <string>
#include <cstdio>
#include <iomanip>
#include <thread>
#include <mutex>
#include <condition_variable>
#include <functional>
#include <iterator>
using namespace std;
const int maxn = 1e6 + 7,maxm = 1007;
struct Node {
double len;
int first, second;
bool operator<(const Node& input) {
return len < input.len;
}
}node[maxn];
double x[maxm], y[maxm], z[maxm];
int p[maxm],n,sum[maxm],sum2[maxm];
#define _POW(x) (x) * (x)
//求距离
double GetLen(int a, int b) {
return sqrt(_POW(x[a] - x[b]) + _POW(y[a] - y[b]) + _POW(z[a] - z[b]));
}
//an unstable planet
bool IsInstable(int index) {
//1的个数 与0的个数
int f0 = sum[index] - sum2[index], f1 = sum2[index];
return p[index] ? f1 < f0 : f0 < f1;
}
int main()
{
while (cin >> n) {
int cnt = 0;
for (int i = 0; i < n; i++) {
cin >> x[i] >> y[i] >> z[i] >> p[i];
sum[i] = 1;
sum2[i] = p[i];
for (int j = 0; j < i; j++) {
node[cnt].first = i;
node[cnt].second = j;
node[cnt].len = GetLen(i, j);
cnt++;
}
}
sort(node, node + cnt);
int c = 0,ans = 0;
double r = 0;
for (int i = 0; i < cnt; i++) {
int first = node[i].first;
int second = node[i].second;
//first second Is it unstable
bool f0 = IsInstable(first);
bool s0 = IsInstable(second);
//总次数
sum[first]++;sum[second]++;
//1的次数
sum2[first] += p[second];
sum2[second] += p[first];
bool f1 = IsInstable(first);
bool s1 = IsInstable(second);
//first second 发生变化了
if (f0 != f1) {
if (f1)c++;
else c--;
}
if (s0 != s1) {
if (s1)c++;
else c--;
}
if (i == cnt - 1 || node[i].len != node[i + 1].len) {
if (c > ans) {
ans = c;
r = node[i].len;
}
}
}
cout << ans << endl;
cout << fixed << setprecision(4) << r << endl;
}
return 0;
}
边栏推荐
猜你喜欢

算法---一和零(Kotlin)

What is ASEMI photovoltaic diode, the role of photovoltaic diode

【cesium】3D Tileset 模型加载并与模型树关联

【cesium】Load and locate 3D Tileset

Redis哨兵模式配置文件详解

flink reads mongodb data source

How can Flutter parent and child components receive click events

结构光三维重建(二)线结构光三维重建

类的底层机制

Develop your own node package
随机推荐
类的底层机制
软件管理rpm
Redis - 13、开发规范
Redis - 13. Development Specifications
NPDP证书含金量高吗?跟PMP相比?
Excel Paint
Flutter learning 2-dart learning
机器学习概述
Day14 jenkins deployment
Day14 jenkins部署
Four-digit display header design
Develop your own node package
Mvi架构浅析
Shell(4)条件控制语句
mysql数据库表什么字段类型的存储长度最大?
入口点注入
How to deal with DNS hijacking?
Redis哨兵模式配置文件详解
u-boot中的u-boot,dm-pre-reloc
upload上传图片到腾讯云,如何上传图片