leyni,loli,cap
来源:互联网 发布:win8如何激活windows 编辑:程序博客网 时间:2024/06/11 14:57
#include <stdio.h>
#include <iostream>
#include <cstring>
#include <string>
#include <algorithm>
using namespace std;
int loli[51];
int hon_loli[51];
void quicksort(int a[],int low,int high)
{
if(low<high)
{
int i=low;
int j=high;
while(i<j)
{
//左大右小
while(i<j&&a[low]>=a[j]) j--;
while(i<j&&a[high]<=a[i]) i++;
swap(a[i],a[j]);
}
swap(a[low],a[i]);
quicksort(loli,low,i-1);
quicksort(loli,i+1,high);
}
}
int main()
{
int t;
cin>>t;
while(t--)
{
memset(loli,0,sizeof(loli));
memset(hon_loli,0,sizeof(hon_loli));
int n; //loli数
int sum=0;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>loli[i];
sum+=loli[i];
}
if(sum%(n-1)!=0) cout<<-1<<endl; //情况一:报数的和不符合现实
else
{
quicksort(loli,0,n-1);//将萝莉报的数大->小排列
int cap=sum/(n-1); //带帽loli的人数
int nocap=n-cap; //不戴帽的
int flag=1;
for(int i=0;i<n;i++)
{
if(i<nocap) hon_loli[i]=cap; //没帽子的诚实loli报数比戴帽子的诚实loli多,放左边,使与快排的萝莉报数顺序一致
else hon_loli[i]=cap-1; //戴帽子的诚实loli报数
if(hon_loli[i]!=loli[i]) //如果不一致,则有loli说谎
{
flag=0;
break;
}
}
if(!flag) cout<<-1;
else cout<<cap;
cout<<endl;
}
}
}
0 0
- leyni,loli,cap
- Hust oj 1384 Leyni, LOLI and Toasts(水题)
- Hust oj 1104 Leyni, LOLI and Line(线段相交)
- ACM-计算几何之Leyni, LOLI and Line——hrbust1104
- Hrbust 1390 Leyni, LOLI and Numbers【思维+树状数组+二分+双向链表模拟】好题!好题!好题!
- cap
- CAP
- CAP
- CAP
- CAP
- CAP?
- lolita,loli什么意思
- 2017.2.18 loli测试
- 2017.2.19 loli测试
- 2017.4.2 loli测试
- 2017.4.22 loli测试
- 2017.4.23loli测试
- 2017.8.8 loli测试
- 强化学习学习资料-其他博客与网页搜集
- 变量参数和指针参数
- xml解析
- Ajax 无刷新上传文件
- 【leetcode】Binary Tree Inorder Traversal
- leyni,loli,cap
- ImageView中的图片怎么在SQLite数据库中存取.txt
- Cadence16.6 最新83号补丁下载-Hotfix_SPB16.60.083_wint_1of1.exe
- K-近邻算法
- PHP中数组的三种排序方法
- Android BaseListAdapter要这样搞?
- 最好的 “职业规划” 文章 !
- 深入理解 FastCGI 协议以及在 PHP 中的实现
- Ubuntu下将mp4文件转成gif文件