Skip to content

Commit 5fb1af1

Browse files
committed
leetcode 2448
1 parent 6d2bce9 commit 5fb1af1

File tree

1 file changed

+68
-0
lines changed

1 file changed

+68
-0
lines changed
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
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

Comments
 (0)