11/*
22 written by Pankaj Kumar.
33 country:-INDIA
4- Institute: National Institute of Technology, Uttarakhand
54*/
6- typedef long long ll ;
7- typedef vector<int > vl;
8- typedef vector<vector<int >> vvl;
9- #define speed cin.tie(0 );cout.tie(0 );ios_base::sync_with_stdio(0 );
10- /* Abbrevations */
11- #define ff first
12- #define ss second
13- #define mp make_pair
14- #define pb push_back
15- // loops
16- #define forin (arr,n ) for (ll i=0 ;i<n;i++) cin>>arr[i];
17- // Some print
18- #define no cout<<" NO" <<endl;
19- #define yes cout<<" YES" <<endl;
20- // sort
21- #define all (V ) (V).begin(),(V).end()
22- #define srt (V ) sort(all(V))
23- #define srtGreat (V ) sort(all(V),greater<ll>())
24- // some extra
25- #define printv (v ) for (ll i=0 ;i<ll(v.size());i++){cout<<v[i]<<" " ;} cout<<endl;
26- #define precision (x ) cout<<fixed<<setprecision(x);
27- #define sz (V ) ll(V.size())
28-
29-
30- /* ascii value
31- A=65,Z=90,a=97,z=122
32- */
33-
34- /* Some syntax
35- //Syntax to create a min heap for priority queue
36- //priority_queue <int, vector<int>, greater<int>>pq;
37- */
38- ll ppow (ll n, ll m, ll mod){
39- if (m==0 ) return 1 ;
40- ll tmp=ppow (n, m/2 , mod);
41- tmp=tmp*tmp%mod;
42- return m%2 ? tmp*n%mod: tmp;
43- }
44- namespace mod_operations {
45- ll modInv (ll n, ll mod){
46- return ppow (n,mod-2 , mod);
47- }
48- ll modAdd (ll n, ll m, ll mod){
49- n=(n%mod+mod)%mod; m=(m%mod+mod)%mod;
50- return (n+m)%mod;
51- }
52- ll modMul (ll n, ll m, ll mod){
53- n=(n%mod+mod)%mod; m=(m%mod+mod)%mod;
54- return n*m %mod;
55- }
56- ll modSub (ll n, ll m, ll mod){
57- n=(n%mod+mod)%mod; m=(m%mod+mod)%mod;
58- return modAdd (n,-m, mod);
59- }
60- ll modDiv (ll n, ll m, ll mod){
61- return modMul (n, modInv (m, mod), mod);
62- }
63- }
64- using namespace mod_operations ;
65-
66-
67- /* --------------------MAIN PROGRAM----------------------------*/
68- // to run ctrl+b
69- const ll INF=1e18 ;
70- const ll mod1=1e9 +7 ;
71- const ll mod2=998244353 ;
72- // Techniques :
73- // divide into cases, brute force, pattern finding
74- // sort, greedy, binary search, two pointer
75- // transform into graph
76-
77- // Experience :
78- // Cp is nothing but only observation and mathematics.
79-
80-
81- // Add main code here
82-
83- class Solution {
5+ typedef long long ll;
6+ const ll INF = 1e18 ;
7+ const ll mod1 = 1e9 + 7 ;
8+ const ll mod2 = 998244353 ;
9+ // Add main code here
10+
11+ class Solution
12+ {
8413public:
85- vector<int > rearrangeArray (vector<int >& nums) {
86- vector<int > pos,neg,ans;
87- for (auto x:nums){
88- if (x>=0 ){
89- pos.pb (x);
14+ vector<int > rearrangeArray (vector<int > &nums)
15+ {
16+ int pos = 0 , neg = 1 ;
17+ int n = nums.size ();
18+ assert (n % 2 == 0 );
19+ vector<int > ans (n, 0 );
20+ for (auto x : nums)
21+ {
22+ if (x > 0 )
23+ {
24+ ans[pos] = x;
25+ pos += 2 ;
9026 }
91- else {
92- neg.pb (x);
93- }
94- }
95- int i=0 ,j=0 ;
96- for (int k=0 ;k<sz (nums);k++){
97- if (k&1 ){
98- ans.pb (neg[j]);
99- j++;
100- }
101- else {
102- ans.pb (pos[i]);
103- i++;
27+ else
28+ {
29+ ans[neg] = x;
30+ neg += 2 ;
10431 }
10532 }
10633 return ans;
10734 }
108- };
109-
110-
111- /* -----------------END OF PROGRAM --------------------*/
112- /*
113- * stuff you should look before submission
114- * constraint and time limit
115- * int overflow
116- * special test case (n=0||n=1||n=2)
117- * don't get stuck on one approach if you get wrong answer
118- */
35+ };
0 commit comments