Submission #1337654

#TimeUsernameProblemLanguageResultExecution timeMemory
1337654tsengangGrid Coloring (JOI25_ho_t1)C++20
0 / 100
166 ms39532 KiB
#include <bits/stdc++.h>
#define ll long long
#define ff first
#define ss second
#define pb push_back
#define all(x) (x).begin(), (x).end()
#define ertunt return
using namespace std;
ll mod = 998244353;
vector<ll> adj[600007];
vector<ll> f(600005), inv(600005);
ll modpow(ll a, ll b){
    ll res = 1;
    while(b){
        if(b & 1){
            res *= a;
            res %= mod;
        }
        a *= a;
        a %= mod;
        b >>= 1;
    }
    ertunt res;
}
ll nCk(ll n, ll k){
    if(k < 0 || k > n) ertunt 0;
    ertunt f[n] * inv[k] % mod * inv[n - k] % mod;
}
int main(){
    ios::sync_with_stdio(false);
    cin.tie(NULL);
    map<ll,ll>mp;
	ll n;
	cin >> n;
	vector<ll>a(n),b(n);
	for(auto &x : a){
		cin >> x;
		mp[x]++;
	}
	for(auto &x : b){
		cin >> x;
		mp[x]++;
	}
	mp[a[0]]--;
	for(ll i = 2; i < n; i++)a[i] = max(a[i],a[i-1]);
	for(ll i = 2; i < n; i++)b[i] = max(b[i],b[i-1]);
	vector<ll>add(n+4,0);
	for(ll i = 1; i < n; i++){
		auto it = upper_bound(b.begin()+1,b.end(),a[i]) - b.begin();
		mp[a[i]]+=it-1;
		add[it]++;
		add[n-1]--;
	}
	for(ll i = 1; i < n; i++)add[i]+=add[i-1];
	for(ll i = 0; i < n; i++){
		mp[b[i]]+=add[i];
	}
	ll mx = 0,ans;
	for(auto [x,y] : mp){
		if(y >= mx){
			mx = y;
			ans = x;
		}
	}
	cout << ans << ' ' << mx;
}
#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...