Problem hidden
|This problem was hidden by Editorial Board member probably because it has incorrect language|version or invalid test data, or description of the problem is not clear.|

RGB7751 - Маркын бялууны алхалт

Марк аяган булуунд дуртай ч туранхай байх хүсэлтэй.  Аяган бялуу бүр илчлэгийн хэмжээтэй бөгөөд илчлэгийг шатаахын тулд Марк алхаж болно. Хэрвээ Марк j аяган бялуу идсэн байгаа бөгөөд C илчлэгтэй аяган бялуу идвэл жингээ барихын тулд хамгийн багадаа 2J * C  бээр / мил / алхах шаардлагатай.

Жишээ нь. Хэрвээ тэрээр 3 аяган бялуу идсэн бөгөөд илчлэгийн хэмжээ нь уг дараалалтай [5,10,7] байсан бол түүний алхах хэрэгтэй бээрийн хэмжээ нь (20*5) + (21 * 10) + (22 * 7) = 53. Гэхдээ энэ нь алхах шаардлагатай хамгийн бага зай биш бөгөөд бид бялуу идэх дарааллаа харгалзан үзэх хэрэгтэй.

Хамгийн бага зай нь (20*10) + (21 * 7) + (22 * 5) = 44 байна.

Бялуу бүрийн илчлэгийн хэмжээ өгөгдсөн бол Марк жингээ барихын тулд хамгийн багадаа хэдэн бээр алхах хэрэгтэйг тооцоолно уу. Бялуунуудыг ямар ч дарааллаар идэж болно.

Функцын тайлбар

marcsCakewalk функцыг гүйцээ.

Буцаах утга long integer төрлийн хамгийн бага бээрийн хэмжээ.

Параметер calorie - Бялуунуудын илчлэгийг илэрхийлэх integer төрлийн array

Оролт

Эхний мөрөнд бялууны тоог илэрхийлэх  бүхэл тоо n өгөгдөнө.
Хоёр дахь мөрөнд зайгаар тусгаарлагдсан бүхэл тоонууд өгөгдөнө.

Хязгаарлалт

1 <= n <= 40

1 <= c[i] <= 1000

Гаралт

Марк жингээ барихын тулд алхах шаардлагатай хамгийн бага зайг илэрхийлэх long integer тоо.

Жишээ оролт 0

3

1 3 2

Жишээ гаралт 0

11

Тайлбар 0

Түүний алхах зайн хэмжээг miles гэе, тэгвэл miles-г хамгийн бага байлгахын тулд 3 аяган бялууг доорхи дарааллаар идье:

  1. 3 илчлэгтэй булууг эхэлж идье

miles = 0 + (3*20) = 3

  1. 2 илчлэгтэй булууг дараа нь идье

miles = 3 + (2*21) = 7

  1. 1 илчлэгтэй булууг хамгийн сүүлд идье

miles = 7 + (1*22) = 11

Тэгээд miles-н утга буюу 11-г буцаана.

Жишээ оролт 1

4

7 4 9 6

Жишээ гаралт 1

79

Тайлбар 1

(20 * 9) + (21 * 7) + (22 * 6) + (23 * 4) = 9 + 14 + 24 + 32 = 79

 

Орчуулсан : Б.Даваабаяр АНУ


Нэмсэн:Bataa
Огноо:2020-03-22
Хугацааны хязгаарлалт:1s
Эх кодын хэмжээний хязгаарлалт:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Програмчлалын хэлүүд:C NCSHARP C++ 4.3.2 CPP JULIA PYPY3
Эх сурвалж:https://www.hackerrank.com/challenges/marcs-cakewalk/problem

hide comments
2024-10-28 07:21:56
1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1 0 0 0 0 0 2 2 2 2 0 0 0 0 0 1
1 0 0 0 0 0 2 2 2 2 0 0 0 0 0 1
1 0 0 0 0 0 2 2 2 2 0 0 0 0 0 1
1 0 0 0 0 0 2 2 2 2 0 0 0 0 0 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1


2024-02-05 04:26:31
#include <bits/stdc++.h>

using namespace std;

int main(){
int n;
cin >> n;
vector<int> calories(n);
for(int calories_i = 0; calories_i < n; calories_i++){
cin >> calories[calories_i];
}
// your code goes here
sort(calories.begin(),calories.end());
reverse(calories.begin(),calories.end());
long long temp=1,ans=0;
for(int i=0;i<n;i++)
{
ans+=calories[i]*temp;
temp*=2;
}
printf("%lld\n",ans);
return 0;
}
2023-11-28 07:49:14
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

long long marcsCakewalk(vector<int>& calorie) {
sort(calorie.rbegin(), calorie.rend()); // Эрэмбэлэх, хамгийн их илчлэгтэй бялууг өөрчилж өгөх

long long miles = 0;
int power = 0;

for (int i : calorie) {
miles += (1LL << power) * i; // 2-ийн зэрэгтэй тоог ашиглан олж болохийг харуулах
power++;
}

return miles;
}

int main() {
int n; // Бялууны тоо
cin >> n;

vector<int> calorie(n);
for (int i = 0; i < n; i++) {
cin >> calorie[i];
}

long long result = marcsCakewalk(calorie);
cout << result << endl;

return 0;
}
enig unshad oilgo
2023-08-24 04:25:58
taxi 69

2023-03-17 03:16:00
#include <iostream>
using namespace std;
int main() {
int a[1000],i,n,z=0,s,b=0,t;
cin>>n;
for(i=1; i<=n; i++){
cin>>a[i];
z=z+a[i];}
cin>>s>>t;
if(s<t){
for(i=s; i<t; i++){
b=b+a[i];}}
else {
s=s-1;

for(i=s; i>=t; i--){
b=b+a[i];
}}
if(z-b<b)
cout<<z-b;
else
cout<<b;

return 0;
}
2022-09-29 03:10:30
zaila sd bi uhlee
2022-09-29 03:10:30
zaila sd bi uhlee
2022-09-29 03:10:29
zaila sd bi uhlee
2022-09-29 03:10:29
zaila sd bi uhlee
2022-09-29 03:10:29
zaila sd bi uhlee
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.