当前位置:网站首页>uva1325
uva1325
2022-08-05 04:59:00 【小刀刺大熊】
#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]));
}
//是不稳定星球
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 是否是不稳定的
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;
}
边栏推荐
- creo怎么测量点到面的距离
- A 35-year-old software testing engineer with a monthly salary of less than 2W, resigns and is afraid of not finding a job, what should he do?
- bytebuffer internal structure
- 【微信小程序】WXML模板语法-条件渲染
- Please write the SparkSQL statement
- uboot enable debug printing information
- Day14 jenkins deployment
- 结构光三维重建(二)线结构光三维重建
- NPDP证书含金量高吗?跟PMP相比?
- how to measure distance from point to face in creo
猜你喜欢
大学物理---质点运动学
[CISCN2019 South China Division]Web11
C++ core programming
请写出SparkSQL语句
Excel Paint
What is the function of industrial-grade remote wireless transmission device?
什么是ASEMI光伏二极管,光伏二极管的作用
The production method of the powered small sailboat is simple, the production method of the electric small sailboat
Day019 方法重写与相关类的介绍
服务器磁盘阵列
随机推荐
Flutter TapGestureRecognizer 如何工作
ansible各个模块详解
write the story about us
使用IDEA连接TDengine服务器
In the hot summer, teach you to use Xiaomi smart home accessories + Raspberry Pi 4 to connect to Apple HomeKit
Cron(Crontab)--use/tutorial/example
作业8.4 进程间的通信 管道与信号
[8.1] Code Source - [The Second Largest Number Sum] [Stone Game III] [Balanced Binary Tree]
span标签和p标签的区别
Cron(Crontab)--使用/教程/实例
Redis - 13、开发规范
C+ +核心编程
算法---一和零(Kotlin)
u-boot in u-boot, dm-pre-reloc
[Geek Challenge 2019]FinalSQL
[Nine Lectures on Backpacks - 01 Backpack Problems]
Shell(4)条件控制语句
『递归』递归概念与典型实例
uboot enable debug printing information
2023年信息与通信工程国际会议(JCICE 2023)