840A - Leha and Function - CodeForces Solution


combinatorics greedy math number theory sortings *1300

Please click on ads to support us..

Python Code:

n = int(input())
a = [int(i) for i in input().split()]
b = [int(i) for i in input().split()]

d = dict()
for j in range(n):
    if b[j] not in d:
        d[b[j]] = []
    d[b[j]].append(j)
a1 = sorted(a)[::-1]
b = sorted(b)
for i in range(n):
    ind = d[b[i]].pop()
    a[ind] = a1[i]
print(*a)

C++ Code:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;

bool cmp(pair<int,int> p1,pair<int,int> p2){

   return p1.second<p2.second;
}

bool rcmp(pair<int,int> p1,pair<int,int> p2){

   return p1.second<p2.second;
}

int main(){

   ll n;
   cin>>n;

   vector<int> v_a;
   vector<pair<int,int>> v_b;

   for(ll i=0;i<n;i++){
      ll x;
      cin>>x;

      v_a.push_back(x);
   }

   for(ll i=0;i<n;i++){
      ll y;
      cin>>y;

      v_b.push_back(make_pair(i,y));
   }

    sort(v_a.begin(),v_a.end(),greater<int>());
    sort(v_b.begin(),v_b.end(),cmp);
     
     ll x[n];
    for(ll i=0;i<n;i++){
         
         x[v_b[i].first]=v_a[i];
       }

       for(ll i=0;i<n;i++){

         cout<<x[i]<<" ";
       }
}


Comments

Submit
0 Comments
More Questions

1245C - Constanze's Machine
1005A - Tanya and Stairways
1663F - In Every Generation
1108B - Divisors of Two Integers
1175A - From Hero to Zero
1141A - Game 23
1401B - Ternary Sequence
598A - Tricky Sum
519A - A and B and Chess
725B - Food on the Plane
154B - Colliders
127B - Canvas Frames
107B - Basketball Team
245A - System Administrator
698A - Vacations
1216B - Shooting
368B - Sereja and Suffixes
1665C - Tree Infection
1665D - GCD Guess
29A - Spit Problem
1097B - Petr and a Combination Lock
92A - Chips
1665B - Array Cloning Technique
1665A - GCD vs LCM
118D - Caesar's Legions
1598A - Computer Game
1605A - AM Deviation
1461A - String Generation
1585B - Array Eversion
1661C - Water the Trees