Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <random>
- #include <vector>
- #include <algorithm>
- #include <array>
- #include <iostream>
- std::vector<int> solution(std::vector<int>& A,int F,int M){
- int sum=std::accumulate(A.begin(),A.end(),0);
- int sum_of_missed=M*(A.size()+F)-sum;
- constexpr unsigned char pro_length = 7;
- std::array<double,pro_length> pro;
- for(int i=1;i<pro_length;i++){
- pro[i] = sum_of_missed > i ? (double)(1.0 / 6.0) : 0.0;
- }
- std::default_random_engine generator;
- std::discrete_distribution<int> distribution(pro.begin(),pro.end());
- std::vector<int> misseds;
- while(true){
- int sum_of_randoms=0,x;
- for(int i=0;i<F;i++){
- x=distribution(generator);
- sum_of_randoms+=x;
- misseds.push_back(x);
- }
- if(sum_of_randoms==sum_of_missed)
- return misseds;
- else misseds.clear();
- }
- }
- int main()
- {
- std::vector<int> vec={1,5,6,3,5,6,3,1,2,4,6,4,5};
- auto res=solution(vec,4,5);
- std::for_each(res.begin(),res.end(),[](int e){std::cout<<e<<"\t";});
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement