Submission #1178298

#TimeUsernameProblemLanguageResultExecution timeMemory
1178298biankGift Exchange (JOI24_ho_t4)C++20
50 / 100
2595 ms4164 KiB
#include <bits/stdc++.h> using namespace std; #define forn(i,n) for(int i=0;i<int(n);i++) #define forsn(i,s,n) for(int i=int(s);i<int(n);i++) #define dforn(i,n) for(int i=int(n)-1;i>=0;i--) #define dforsn(i,s,n) for(int i=int(n)-1;i>=int(s);i--) #define fst first #define snd second #define pb push_back #define eb emplace_back #define sz(x) (int)x.size() #define all(x) x.begin(), x.end() typedef long long ll; typedef vector<ll> vll; typedef vector<int> vi; typedef pair<int,int> ii; int main(){ ios::sync_with_stdio(0); cin.tie(0); int n; cin>>n; vector<int> a(n),b(n); forn(i,n){ cin>>a[i]; --a[i]; } forn(i,n){ cin>>b[i]; --b[i]; } int k; cin>>k; forn(_,k){ int l,r; cin>>l>>r; --l,--r; vector<ii> A,B; forsn(i,l,r+1){ A.eb(a[i],i); B.eb(b[i],i); } sort(all(A)); sort(all(B)); forn(i,sz(A)) if(A[i].snd==B[i].snd){ if(i>0&&B[i].fst<A[i-1].fst) swap(B[i-1],B[i]); else if(i+1<sz(B)&&B[i].fst<A[i+1].fst) swap(B[i+1],B[i]); } bool flag=true; forn(i,sz(A)) flag&=A[i].fst>B[i].fst&&A[i].snd!=B[i].snd; if(flag) cout<<"Yes\n"; else cout<<"No\n"; } return 0; }
#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...