-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path1547C C. Pair Programming.cpp
145 lines (141 loc) · 3.93 KB
/
1547C C. Pair Programming.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
/*
problem link: https://codeforces.com/contest/1547/problem/C
my solution on codeforces : https://codeforces.com/contest/1547/submission/179006451
problem name: C. Pair Programming
status: accepted
author: lilian_steven or LELLO
*/
#include <bits/stdc++.h>
#include <iostream>
#include <vector>
#include <set>
#include <map>
#include <stack>
#include <cmath>
#include <unordered_map>
#include <algorithm>
#include <iomanip>
#include <bitset>
#include <utility>
#include <string>
#include <cctype>
#include <iomanip>
#include <numeric> // for NTH
#define bye return;
#define ll long long
#define li long int
#define lli long long int
#define all(x) x.begin(), x.end()
#define rall(x) x.rbegin(), x.rend()
#define sz(x) ((x).size())
#define fixed(n) fixed << setprecision(n)
#define ison(num, bit) (num & (1 << bit))
#define setoff(num, bit) (num ^= (1 << bit)) // iff (num &(1<<bit))
#define flipbit(num, bit) (num ^= (1 << bit))
#define setbit(num, bit) (num |= (1 << bit))
#define clearbit(num, bit) (num &= ~(1 << bit))
#define pop_count(num) __builtin_popcount(num)
#define Num_of_Digits(n) ((ll)log10(n) + 1)
#define ceill(n, m) (((n) / (m)) + ((n) % (m) ? 1 : 0))
#define lastOne(x) (__builtin_clzll(x))
#define Pi 3.14159265358979323846264
#define sin(a) sin((a)*PI/180)
#define cos(a) cos((a)*PI/180)
ll sgn(ll x){ if(x > 0) return 1; if(x < 0) return -1; return 0;}
ll gcd(ll a, ll b){if(b == 0) return a; return gcd(b, a%b);}
ll lcm(ll a, ll b){return a/gcd(a, b)*b;}
using namespace std;
void AC() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr); // or cin.tie(NULL)
cout.tie(nullptr); // or cout.tie(0)
// #ifndef ONLINE_JUDGE
// freopen("input.txt", "r", stdin), freopen("output.txt", "w", stdout);
// #endif
}
void file_set(string& file_name){
freopen((file_name+".in").c_str(), "r", stdin);
freopen((file_name+".out").c_str(), "w", stdout);
}
bool cmp(pair<int,int>&a, pair<int,int>&b){
if(a.first == b.first){
return a.second > b.second;
}
return a.first < b.first;
}
void LELLO()
{
string s ; getline(cin , s );
int k , n , m ;cin >> k >> n >> m ;
vector<int> a(n) , b(m) ,ans;
for (int i = 0; i < n; i++)
{
cin >> a[i] ;
}
for (int i = 0; i < m; i++)
{
cin >> b[i] ;
}
// int mn = min( n , m);
int i = 0 , j = 0 ;
while ( i < n || j < m)
{
bool flag = true ;
while (i < n && a[i] <= k)
{
ans.push_back(a[i]) , k+= !(a[i]) ;
i++;
flag = false;
}
while (j < m && b[j] <= k)
{
ans.push_back(b[j]) , k+= !(b[j]) ;
j++;
flag = false;
}
if(flag) break;
}
if( i < n){
for ( ; i < n; i++)
{
if(a[i] > k ){
cout<< -1 <<endl;
bye
}
ans.push_back(a[i]) ;
}
}
if(j < m){
for (; j < m; j++ )
{
if(b[j] > k ){
cout<< -1 <<endl;
bye
}
ans.push_back(b[j]) ;
}
}
for (int z = 0; z < ans.size(); z++)
{
cout<< ans[z] <<' ';
}
cout<<endl;
ans.clear();
}
void driver(ll t)
{
while (t--) LELLO();
}
signed main()
{
AC();
ll test ; cin >> test ;
// chrono::time_point<chrono::system_clock> start, end;
// start = chrono::system_clock::now();
driver(test);
// end = chrono::system_clock::now();
// chrono::duration<double> elapsed_seconds = end - start;
// time_t end_time = chrono::system_clock::to_time_t(end);
// cout << "finished computation at " << ctime(&end_time) << "elapsed time: " << elapsed_seconds.count() << "s\n";
// cerr << "time taken : " << (float)clock() / CLOCKS_PER_SEC << " secs" << endl ;
}