題意:給定一些長度的繩子段,然後把這些繩子段連接配接起來,連接配接後的長度為總的長度的一半,halved減半的意思,題目最後說結果要向下取整,不超過最長的長度,我覺得因該要用double接受值,最後在進行向下取整,但是無語的是有幾個點通不過,看柳神的直接用int類型接受,每次截取一半之後直接取整數部分。
思路:依次把段的長度相加之後除2,用int類型接受。思路簡單,但是英文看不懂,我枯了
代碼:
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int main() {
int n;
cin >> n;
vector<int> v(n);
for (int i = 0; i < n; i++) {
scanf("%d", &v[i]);
}
sort(v.begin(),v.end());
int sum = v[0];
for (int i = 1; i < n; i++) {
sum = (sum + v[i]) / 2;
}
printf("%d\n",sum);
system("pause");
return 0;
}