// druva_challenge.cpp : Defines the entry point for the console application.
//
#define _CRT_DISABLE_PERFCRIT_LOCKS
// lower_bound/upper_bound example
#include <iostream> // std::cout
#include <algorithm> // std::lower_bound, std::upper_bound, std::sort
#include <vector> // std::vector
#include <utility>
using namespace std;
bool pairCompare(const std::pair<long long int, unsigned int>& firstElem, const std::pair<long long int, unsigned int>& secondElem) {
return firstElem.first < secondElem.first;
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
unsigned int n, m;
long long int arr[100000], x,temp;
vector<pair<long long int, unsigned int> > vect(100000);
cin >> n;
for (unsigned int i = 0; i < n; i++)
{
cin >> temp;
arr[i] = temp;
vect[i].first = temp;
vect[i].second = i;
}
sort(vect.begin(), vect.begin() + n, pairCompare);
cin >> m;
vector<pair<long long int, unsigned int> >::iterator low;
while (m--)
{
cin >> x;
low = lower_bound(vect.begin(), vect.begin() + n, make_pair(x,2), pairCompare);
if (low != vect.begin() + n)
{
for (unsigned int i = low - vect.begin(); i < n; i++)
{
if (vect[i].first != x)
{
vect[i].first -= 1;
arr[vect[i].second] -= 1;
}
}
}
}
for (unsigned int i = 0; i < n; i++)
{
cout << arr[i]<<" ";
}
return 0;
}
Ly8gZHJ1dmFfY2hhbGxlbmdlLmNwcCA6IERlZmluZXMgdGhlIGVudHJ5IHBvaW50IGZvciB0aGUgY29uc29sZSBhcHBsaWNhdGlvbi4KLy8KIAojZGVmaW5lIF9DUlRfRElTQUJMRV9QRVJGQ1JJVF9MT0NLUwogCi8vIGxvd2VyX2JvdW5kL3VwcGVyX2JvdW5kIGV4YW1wbGUKI2luY2x1ZGUgPGlvc3RyZWFtPiAgICAgLy8gc3RkOjpjb3V0CiNpbmNsdWRlIDxhbGdvcml0aG0+ICAgIC8vIHN0ZDo6bG93ZXJfYm91bmQsIHN0ZDo6dXBwZXJfYm91bmQsIHN0ZDo6c29ydAojaW5jbHVkZSA8dmVjdG9yPiAgICAgICAvLyBzdGQ6OnZlY3RvcgojaW5jbHVkZSA8dXRpbGl0eT4KIAp1c2luZyBuYW1lc3BhY2Ugc3RkOwogCiAKYm9vbCBwYWlyQ29tcGFyZShjb25zdCBzdGQ6OnBhaXI8bG9uZyBsb25nIGludCwgdW5zaWduZWQgaW50PiYgZmlyc3RFbGVtLCBjb25zdCBzdGQ6OnBhaXI8bG9uZyBsb25nIGludCwgdW5zaWduZWQgaW50PiYgc2Vjb25kRWxlbSkgewoJcmV0dXJuIGZpcnN0RWxlbS5maXJzdCA8IHNlY29uZEVsZW0uZmlyc3Q7CiAKfQogCmludCBtYWluKCkgewogCglpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKCWNpbi50aWUoTlVMTCk7CiAKCXVuc2lnbmVkIGludCBuLCBtOwogCglsb25nIGxvbmcgaW50IGFyclsxMDAwMDBdLCB4LHRlbXA7CiAKCXZlY3RvcjxwYWlyPGxvbmcgbG9uZyBpbnQsIHVuc2lnbmVkIGludD4gPiB2ZWN0KDEwMDAwMCk7CiAKCWNpbiA+PiBuOwogCglmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IG47IGkrKykKCXsKCQljaW4gPj4gdGVtcDsKCQlhcnJbaV0gPSB0ZW1wOwogCgkJdmVjdFtpXS5maXJzdCA9IHRlbXA7CgkJdmVjdFtpXS5zZWNvbmQgPSBpOwoJfQogCglzb3J0KHZlY3QuYmVnaW4oKSwgdmVjdC5iZWdpbigpICsgbiwgcGFpckNvbXBhcmUpOwogCiAKCWNpbiA+PiBtOwogCgl2ZWN0b3I8cGFpcjxsb25nIGxvbmcgaW50LCB1bnNpZ25lZCBpbnQ+ID46Oml0ZXJhdG9yIGxvdzsKIAoJCiAKCXdoaWxlIChtLS0pCgl7CgkJCQljaW4gPj4geDsKIAoJCgkKCQlsb3cgPSBsb3dlcl9ib3VuZCh2ZWN0LmJlZ2luKCksIHZlY3QuYmVnaW4oKSArIG4sIG1ha2VfcGFpcih4LDIpLCBwYWlyQ29tcGFyZSk7CiAKCQlpZiAobG93ICE9IHZlY3QuYmVnaW4oKSArIG4pCgkJewoJCQkJCgkJCQlmb3IgKHVuc2lnbmVkIGludCBpID0gbG93IC0gdmVjdC5iZWdpbigpOyBpIDwgbjsgaSsrKQoJCQkJewoJCgkJCQkJaWYgKHZlY3RbaV0uZmlyc3QgIT0geCkKCQkJCQl7CgkJCQkJCXZlY3RbaV0uZmlyc3QgLT0gMTsKCQoJCQkJCQlhcnJbdmVjdFtpXS5zZWNvbmRdIC09IDE7CgkJCQkJfQoJCQkJfQoJCX0KIAoJCQogCiAKCX0KIAogCglmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IG47IGkrKykKCXsKCQkKCQljb3V0IDw8IGFycltpXTw8IiAiOwoJfQogCgkKCXJldHVybiAwOwp9