제출 #1331318

#제출 시각아이디문제언어결과실행 시간메모리
1331318lywoemGrid Coloring (JOI25_ho_t1)C++20
25 / 100
548 ms1114112 KiB
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
#define l(a, b, i) for (ll i = a; i < b; i++)
#define rl(a, b, i) for (ll i = a; i >= b; i--)
#define vpair vector<pair<ll, ll>>
#define inf LLONG_MAX
#define ninf LLONG_MIN

int main() {
    ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    ll N; cin >> N; vector<ll> vecA(N + 1, 0), vecB(N + 1, 0);
    l(1, N + 1, i) cin >> vecA[i];
    l(1, N + 1, i) cin >> vecB[i];

    map<ll, ll> mp;
    vector<vector<ll>> grid(N + 1, vector<ll> (N + 1, 0));
    l(1, N + 1, i) {
        grid[i][1] = vecA[i];
        mp[grid[i][1]]++;
    }
    l(1, N + 1, i) {
        grid[1][i] = vecB[i];
        mp[grid[1][i]]++;
    }
    mp[grid[1][1]]--; // vì bị dup từ vecA lẫn vecB ó

    l(2, N + 1, i) {
        l(2, N + 1, j) {
            grid[i][j] = max(grid[i - 1][j], grid[i][j - 1]);
            mp[grid[i][j]]++;
        }
    }

    ll ans = 0;
    ll num = 0;

    for (auto i = mp.begin(); i != mp.end(); i++) {
        if (i -> second > ans) {
            ans = i -> second;
            num = i -> first;
        }

        else if (i -> second == ans) {
            if (i -> first > num) num = i -> first;
        }
    }

    cout << num << ' ' << ans;
}
#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...