|
| 1 | +/* |
| 2 | + written by Pankaj Kumar. |
| 3 | + country:-INDIA |
| 4 | +*/ |
| 5 | +typedef long long ll ; |
| 6 | + |
| 7 | + |
| 8 | +/* ascii value |
| 9 | +A=65,Z=90,a=97,z=122 |
| 10 | +*/ |
| 11 | + |
| 12 | +/* --------------------MAIN PROGRAM----------------------------*/ |
| 13 | +// to run ctrl+b |
| 14 | +const ll INF=1e18; |
| 15 | +const ll mod1=1e9+7; |
| 16 | +const ll mod2=998244353; |
| 17 | +// Techniques : |
| 18 | +// divide into cases, brute force, pattern finding |
| 19 | +// sort, greedy, binary search, two pointer |
| 20 | +// transform into graph |
| 21 | + |
| 22 | +// Experience : |
| 23 | +// Cp is nothing but only observation and mathematics. |
| 24 | + |
| 25 | + |
| 26 | +//Add main code here |
| 27 | + |
| 28 | +class Solution |
| 29 | +{ |
| 30 | +public: |
| 31 | + long long minCost(vector<int> &nums, vector<int> &cost) |
| 32 | + { |
| 33 | + long long ans=LONG_MAX; |
| 34 | + long long n=nums.size(); |
| 35 | + vector<long long> v(1000001,0); |
| 36 | + for(int i=0;i<n;i++){ |
| 37 | + v[nums[i]]+=cost[i]; |
| 38 | + } |
| 39 | + vector<long long> prefix(1000002, 0), suffix(1000002, 0); |
| 40 | + long long totalPrevious = 0; |
| 41 | + for (long long i = 1; i < 1000001; i++) |
| 42 | + { |
| 43 | + prefix[i]=prefix[i-1]+totalPrevious; |
| 44 | + totalPrevious += v[i]; |
| 45 | + } |
| 46 | + totalPrevious = 0; |
| 47 | + for (long long i = 1000000; i > 0; i--) |
| 48 | + { |
| 49 | + suffix[i]=suffix[i+1]+totalPrevious; |
| 50 | + totalPrevious+=v[i]; |
| 51 | + } |
| 52 | + |
| 53 | + for (long long i = 1; i <= 1000000; i++) |
| 54 | + { |
| 55 | + ans=min(prefix[i]+suffix[i],ans); |
| 56 | + } |
| 57 | + return ans; |
| 58 | + } |
| 59 | +}; |
| 60 | + |
| 61 | +/* -----------------END OF PROGRAM --------------------*/ |
| 62 | +/* |
| 63 | +* stuff you should look before submission |
| 64 | +* constraint and time limit |
| 65 | +* int overflow |
| 66 | +* special test case (n=0||n=1||n=2) |
| 67 | +* don't get stuck on one approach if you get wrong answer |
| 68 | +*/ |
0 commit comments