每个输入包含一个测试用例。每个测试用例的第一行包含一个整数 n(1 <= n <= 100),接下来的一行包含 n 个整数 ai(1 <= ai <= 100)。
输出一行表示最少需要移动多少次可以平分苹果,如果方案不存在则输出 -1。
4 7 15 9 5
3
#include<iostream>
using namespace std;
int a[100];
int main(){int n;cin >> n;int sum = 0,count=0,ave=0;for (int i = 0; i<n; i++){cin >> a[i];sum += a[i];}if (sum%n != 0)//总数必须可以均分{cout << "-1" << endl;return 0;}else{ave = sum / n;for (int i = 0; i<n; i++){if (a[i]>ave){if((a[i]-ave)%2)//减去平均数剩余的可以被2整除{cout<<"-1"<<endl;return 0;}elsecount += (a[i] - ave) / 2;
<span style="white-space:pre"> </span>}}cout << count << endl;return 0;}
}
二 星际穿越 航天飞行器是一项复杂而又精密的仪器,飞行器的损耗主要集中在发射和降落的过程,科学家根据实验数据估计,如果在发射过程中,产生了 x 程度的损耗,那么在降落的过程中就会产生 x 2 程度的损耗,如果飞船的总损耗超过了它的耐久度,飞行器就会爆炸坠毁。问一艘耐久度为 h 的飞行器,假设在飞行过程中不产生损耗,那么为了保证其可以安全的到达目的地,只考虑整数解,至多发射过程中可以承受多少程度的损耗? 每个输入包含一个测试用例。每个测试用例包含一行一个整数 h (1 <= h <= 10^18)。
输出一行一个整数表示结果。
10
2
#include<iostream>
#include<cmath>
using namespace std;
int main(){long long int n;while(cin>>n){long long int q=sqrt(n);while(q*q+q>n)q--;//开根号后可能过大,直到符合条件cout<<q<<endl;}return 0;
}
本文发布于:2024-01-30 05:28:58,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170656374219555.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |