/ SeriousOJ /

Record Detail

Time Exceeded


  
# Status Time Cost Memory Cost
#1 Accepted 1ms 532.0 KiB
#2 Accepted 1ms 572.0 KiB
#3 Accepted 1ms 532.0 KiB
#4 Time Exceeded ≥2094ms ≥2.125 MiB
#5 Time Exceeded ≥2096ms ≥10.414 MiB
#6 Time Exceeded ≥2097ms ≥5.805 MiB
#7 Accepted 317ms 772.0 KiB
#8 Time Exceeded ≥2089ms ≥5.98 MiB
#9 Time Exceeded ≥2093ms ≥6.191 MiB
#10 Time Exceeded ≥2096ms ≥10.539 MiB
#11 Accepted 27ms 532.0 KiB
#12 Accepted 51ms 932.0 KiB
#13 Accepted 1ms 532.0 KiB

Code

#include<bits/stdc++.h>
#define ll long long
using namespace std;

int main(){
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  int t;
  cin >> t;
  while (t--){
    int n, q;
    cin >> n;
    multiset<int> st1, st2;
    vector<ll> a(n), mn1(n), mn2(n), mx1(n), mx2(n), ans(n);
    for (int i = 0; i < n; i++){
      cin >> a[i];
      st1.insert(a[i]);
      mn1[i] = distance(st1.begin(), st1.lower_bound(a[i]));
      mx1[i] = (i + 1) - distance(st1.begin(), st1.lower_bound(a[i] + 1));
    }
    for (int i = n - 1; i >= 0; i--){
      st2.insert(a[i]);
      mn2[i] = distance(st2.begin(), st2.lower_bound(a[i]));
      mx2[i] = (n - i) - distance(st2.begin(), st2.lower_bound(a[i] + 1));
    }
    for (int i = 0; i < n; i++){
      ans[i] = mn1[i] * mx2[i] + mn2[i] * mx1[i];
    }
    cin >> q;
    while (q--){
      int j;
      cin >> j;
      j--;
      cout << ans[j] << "\n";
    }
  }
  return 0;
}

Information

Submit By
Type
Submission
Problem
P1079 Roy and Query (Easy Version)
Contest
Brain Booster #6
Language
C++17 (G++ 13.2.0)
Submit At
2024-10-03 17:20:23
Judged At
2024-10-03 17:20:23
Judged By
Score
52
Total Time
≥2097ms
Peak Memory
≥10.539 MiB