Submission #1358891

#TimeUsernameProblemLanguageResultExecution timeMemory
1358891huseyncafarliGrid Coloring (JOI25_ho_t1)C++20
0 / 100
22 ms3568 KiB
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define int ll

const int MAXN = 1e6 + 5;
const int inf = (int)2e9 + 5;
const int infll = (int)4e18 + 5;
const int mod = (int)1e9 + 7;


void solve(){
  int n;
  cin >> n;
  vector<int> a(n + 1), b(n + 1);
  for(int i = 1; i <= n; i++) {
    cin >> a[i];
  }
  for(int i = 1; i <= n; i++) {
    cin >> b[i];
  }
  int mx1 = 0, mx2 = 0, ind1 = 1, ind2 = 1;
  for(int i = 2; i <= n; i++) {
    if(a[i] > mx1) {
      mx1 = a[i];
      ind1 = i;
    }
    if(b[i] > mx2) {
      mx2 = b[i];
      ind2 = i;
    }
  }
  int cntmx1 = 0, cntmx2 = 0;
  if(a[1] > mx1) {
    ind1 = n + 1;
    mx1 = a[1];
  }
  if(b[1] > mx2) {
    ind2 = n + 1;
    mx2 = b[1];
  }
  for(int i = 1; i <= n; i++) {
    cntmx1 += (a[i] == mx1);
    if(mx1 == mx2 and i == 1) continue;
    cntmx2 += (b[i] == mx2);
  }
  int cnt = 0;
  if(mx1 == mx2 ) {
    cnt += 1ll*(n - ind1 + 1)*(n - 1) + cntmx1;
    cnt += 1ll*(ind1 - 2)*(n - ind2 + 1) + cntmx2;
  } else if(mx1 > mx2) {
    cnt += 1ll*(n - ind1 + 1)*(n - 1) + cntmx1;
  } else {
    cnt += 1ll*(n - ind2 + 1)*(n - 1) + cntmx2;
  }
  cout << max(mx1, mx2) << " " << cnt << endl;
}

signed main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  int t = 1;
  //cin >> t;
  while(t--)
    solve();
  return 0;
}

#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...