/ SeriousOJ /

Record Detail

Accepted


  
# Status Time Cost Memory Cost
#1 Accepted 1ms 540.0 KiB
#2 Accepted 15ms 568.0 KiB
#3 Accepted 21ms 744.0 KiB
#4 Accepted 21ms 540.0 KiB
#5 Accepted 22ms 540.0 KiB
#6 Accepted 21ms 540.0 KiB
#7 Accepted 21ms 772.0 KiB
#8 Accepted 20ms 556.0 KiB
#9 Accepted 21ms 540.0 KiB
#10 Accepted 22ms 536.0 KiB
#11 Accepted 21ms 332.0 KiB
#12 Accepted 20ms 540.0 KiB
#13 Accepted 21ms 560.0 KiB
#14 Accepted 20ms 540.0 KiB
#15 Accepted 21ms 576.0 KiB
#16 Accepted 22ms 564.0 KiB
#17 Accepted 20ms 540.0 KiB
#18 Accepted 22ms 332.0 KiB
#19 Accepted 20ms 540.0 KiB
#20 Accepted 20ms 560.0 KiB

Code

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


#define all(x) (x).begin(), (x).end()
#define sz(x) (int) (x).size()
#define int long long
const int mod = 1e9 + 7, INF = 5e9, N = 2e5 + 2;


bool ok(int n, int sum){
    int rc = (n * (n + 1))/2;
   // debug(n, rc);
    if(rc > sum) return false;
    return true;
}


void solve(int cs){
    int n; cin >> n;
    int sum = 0;
    for(int i = 1 ; i <= n ; i++){
         int x; cin >> x;
         sum += x;
    }
    int low = 0, high = INF;
    while(low + 1 < high){
        int mid = (low + high)>>1;
        if(ok(mid, sum)){
            low = mid;
        }
        else high = mid;
    }
    cout<<low + 1<<'\n';
}

//It's now, or never.
signed main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    int TEST = 1;
    cin >> TEST;

    for (int i = 1; i <= TEST; i++) {
      //  cout << "Case " << i << ":"<<'\n';
        solve(i);
    }
   
    return 0;
}

Information

Submit By
Type
Submission
Problem
P1114 Maximize the MEX
Contest
Brain Booster #7
Language
C++17 (G++ 13.2.0)
Submit At
2024-11-05 16:44:41
Judged At
2024-11-05 16:44:41
Judged By
Score
100
Total Time
22ms
Peak Memory
772.0 KiB