Advertisement
Guest User

Untitled

a guest
Nov 20th, 2018
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.67 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <vector>
  4. #include <algorithm>
  5.  
  6. using namespace std;
  7.  
  8.  
  9. int road_repair(vector<int>& arr, int& N, int& K)
  10. {
  11.     sort(arr.begin(), arr.end());
  12.     int len_new = 0, len_pre = 0;
  13.     vector<int> d;
  14.     d.push_back(K);
  15.     for(size_t i = 1; i < arr.size(); i++)
  16.     {
  17.         len_new = d.back() + K;
  18.         for(int j = i-1; j >= 0; j--)
  19.         {
  20.             len_pre = max(K, arr[i] - arr[j] + 1);
  21.             //cout << i << ":" << len_pre << endl;
  22.             if(j > 0)
  23.             {
  24.                 len_pre += d[j-1];
  25.             }
  26.             if(len_pre < len_new)
  27.                 len_new = len_pre;
  28.         }
  29.         d.push_back(len_new);
  30.         //cout << "d-" << i << ":" << len_new << endl;
  31.     }
  32.  
  33.     return d.back();
  34. }
  35.  
  36.  
  37. int main()
  38. {
  39.     //ifstream file;
  40.     //file.open("sample_input.txt", ios_base::in);
  41.  
  42.     int num_of_tests;
  43.     cin >> num_of_tests;
  44.     int arr1[] = {1,2,6,9,10,11,12,16};
  45.     //int arr1[] = {402, 444, 322, 123, 302, 183, 380, 80, 200, 533, 299, 147, 89, 28, 268, 181, 404, 270, 432, 236, 525, 316, 487, 412, 241, 33,414, 357, 542, 489, 466, 174, 226, 69, 308, 565, 317, 539, 170, 455};
  46.  
  47.     for(int i = 0; i < num_of_tests; i++)
  48.     {
  49.         int N, K;
  50.         cin >> N >> K;
  51.         //cout << N << " " << K << endl;
  52.         vector<int> arr;
  53.         int x;
  54.         for(int j = 0; j < N; j++)
  55.         {
  56.             //cin >> x;
  57.             //arr.push_back(x);
  58.             arr.push_back(arr1[j]);
  59.             //cout << x << " ";
  60.         }
  61.         //cout << endl;
  62.         cout << "#" << i+1 << " " << road_repair(arr, N, K) << endl;
  63.     }
  64.     //file.close();
  65.  
  66.     return 0;
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement