QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#363241 | #2337. Azulejos | TWTP_TCTF# | AC ✓ | 634ms | 83400kb | C++14 | 2.4kb | 2024-03-23 19:54:16 | 2024-03-23 19:54:16 |
Judging History
answer
#include<iostream>
#include <bits/stdc++.h>
#define ld long double
#define ll long long
#define IO ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
using namespace std;
const int N = 2e3 + 9, MOD = 998244353;
void doWork() {
int n;
cin >> n;
vector<vector<int>> a(n, vector<int>(3)), b(n, vector<int>(3));
for (int i = 0; i < n; i++) {
cin >> a[i][0];
a[i][2] = i;
}
for (int i = 0; i < n; i++) {
cin >> a[i][1];
}
for (int i = 0; i < n; i++) {
cin >> b[i][0];
b[i][2] = i;
}
for (int i = 0; i < n; i++) {
cin >> b[i][1];
}
sort(a.begin(), a.end());
sort(b.begin(), b.end());
int p1 = 0, p2 = 0;
set<pair<int, int> > s1, s2;
vector<int> ans_a, ans_b;
while (p1 < n || p2 < n) {
if (s1.empty()) {
s1.insert({a[p1][1], a[p1][2]});
p1++;
while (p1 < n && a[p1 - 1][0] == a[p1][0]) {
s1.insert({a[p1][1], a[p1][2]});
p1++;
}
}
if (s2.empty()) {
s2.insert({b[p2][1], b[p2][2]});
p2++;
while (p2 < n && b[p2 - 1][0] == b[p2][0]) {
s2.insert({b[p2][1], b[p2][2]});
p2++;
}
}
if (s1.size() < s2.size()) {
for (auto i: s1) {
auto it = s2.lower_bound(make_pair(i.first, -1));
if (it == s2.begin()) {
cout << "impossible";
return;
}
it--;
ans_a.push_back(i.second);
ans_b.push_back(it->second);
s2.erase(it);
}
s1.clear();
} else {
for (auto i: s2) {
auto it = s1.lower_bound(make_pair(i.first + 1, -1));
if (it == s1.end()) {
cout << "impossible";
return;
}
ans_a.push_back(it->second);
ans_b.push_back(i.second);
s1.erase(it);
}
s2.clear();
}
}
for (auto i: ans_a)cout << i + 1 << " ";
cout << "\n";
for (auto i: ans_b)cout << i + 1 << " ";
}
int main() {
IO
int t = 1;
// cin >> t;
for (int i = 1; i <= t; i++) {
// cout << "Case #" << i << ": ";
doWork();
}
}
Details
Test #1:
score: 100
Accepted
time: 0ms
memory: 3872kb
Test #2:
score: 0
Accepted
time: 0ms
memory: 3584kb
Test #3:
score: 0
Accepted
time: 0ms
memory: 3580kb
Test #4:
score: 0
Accepted
time: 0ms
memory: 3816kb
Test #5:
score: 0
Accepted
time: 0ms
memory: 3536kb
Test #6:
score: 0
Accepted
time: 0ms
memory: 3884kb
Test #7:
score: 0
Accepted
time: 0ms
memory: 3688kb
Test #8:
score: 0
Accepted
time: 0ms
memory: 3584kb
Test #9:
score: 0
Accepted
time: 0ms
memory: 3644kb
Test #10:
score: 0
Accepted
time: 0ms
memory: 3584kb
Test #11:
score: 0
Accepted
time: 0ms
memory: 3808kb
Test #12:
score: 0
Accepted
time: 331ms
memory: 81140kb
Test #13:
score: 0
Accepted
time: 0ms
memory: 3592kb
Test #14:
score: 0
Accepted
time: 1ms
memory: 4012kb
Test #15:
score: 0
Accepted
time: 6ms
memory: 4976kb
Test #16:
score: 0
Accepted
time: 0ms
memory: 3884kb
Test #17:
score: 0
Accepted
time: 0ms
memory: 3592kb
Test #18:
score: 0
Accepted
time: 0ms
memory: 3628kb
Test #19:
score: 0
Accepted
time: 0ms
memory: 3656kb
Test #20:
score: 0
Accepted
time: 0ms
memory: 3648kb
Test #21:
score: 0
Accepted
time: 1ms
memory: 3808kb
Test #22:
score: 0
Accepted
time: 82ms
memory: 15216kb
Test #23:
score: 0
Accepted
time: 68ms
memory: 18916kb
Test #24:
score: 0
Accepted
time: 80ms
memory: 18760kb
Test #25:
score: 0
Accepted
time: 52ms
memory: 15108kb
Test #26:
score: 0
Accepted
time: 275ms
memory: 81216kb
Test #27:
score: 0
Accepted
time: 50ms
memory: 18872kb
Test #28:
score: 0
Accepted
time: 77ms
memory: 18632kb
Test #29:
score: 0
Accepted
time: 47ms
memory: 18600kb
Test #30:
score: 0
Accepted
time: 50ms
memory: 18636kb
Test #31:
score: 0
Accepted
time: 634ms
memory: 83400kb
Test #32:
score: 0
Accepted
time: 93ms
memory: 19000kb
Test #33:
score: 0
Accepted
time: 512ms
memory: 81408kb