Submission #1248975

#TimeUsernameProblemLanguageResultExecution timeMemory
1248975Bui_Quoc_CuongGift Exchange (JOI24_ho_t4)C++20
0 / 100
2595 ms4264 KiB
#include <bits/stdc++.h>
using namespace std;
// #define int long long
using ll = long long;

const int maxN = 5e5 + 5;

int n, q;
int a[maxN], b[maxN];

void init () {
	cin >> n;
	for (int i = 1; i <= n; i++) {
		cin >> a[i];
	}
	for (int i = 1; i <= n; i++) {
		cin >> b[i];
	}
	cin >> q;
}

namespace sub1 {

	void solve() {
		while (q--) {
			int l, r; cin >> l >> r;

			vector <array <int, 2>> sortedA, sortedB;

			for (int i = l; i <= r; i++) {
				sortedA.push_back({a[i], i});
				sortedB.push_back({b[i], i});
			}

			sort(sortedA.begin(), sortedA.end());
			sort(sortedB.begin(), sortedB.end());

			set <int> se;
			bool ans = 1;

			int _j = 0;

			for (int _i = 0; _i < (int)sortedA.size(); _i++) {
				while (_j < (int)sortedB.size() && sortedB[_j][0] <= sortedA[_i][0]) {
					se.insert(sortedB[_j][1]);
					_j++;
				}
				if (se.empty()) {
					ans = 0;
					break;
				}
				auto it = se.rbegin();
				if (*it != sortedA[_i][1]) {
					se.erase(*it);
				} else {
					if (se.size() < 2) {
						ans = 0;
						break;
					} else {
						it--;
						se.erase(*it);
					}
				}
			}

			cout << (ans ? "Yes" : "No") << "\n";
		}	
	}
}

void process () {
	return sub1 :: solve();
}

signed main () {
    ios_base :: sync_with_stdio(0); cin.tie(0);   
    #define taskname "winvoi"
    if (fopen(taskname".inp", "r")) {  
        freopen(taskname".inp", "r", stdin); 
        freopen(taskname".out", "w", stdout);
    }
    init();
    process();
    return 0;
}

Compilation message (stderr)

Main.cpp: In function 'int main()':
Main.cpp:79:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   79 |         freopen(taskname".inp", "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
Main.cpp:80:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   80 |         freopen(taskname".out", "w", stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...