/ SeriousOJ /

Record Detail

Accepted


  
# Status Time Cost Memory Cost
#1 Accepted 1ms 536.0 KiB
#2 Accepted 16ms 588.0 KiB
#3 Accepted 21ms 324.0 KiB
#4 Accepted 21ms 560.0 KiB
#5 Accepted 21ms 556.0 KiB
#6 Accepted 21ms 320.0 KiB
#7 Accepted 21ms 564.0 KiB
#8 Accepted 21ms 532.0 KiB
#9 Accepted 21ms 564.0 KiB
#10 Accepted 21ms 324.0 KiB
#11 Accepted 21ms 432.0 KiB
#12 Accepted 21ms 324.0 KiB
#13 Accepted 21ms 392.0 KiB
#14 Accepted 21ms 564.0 KiB
#15 Accepted 22ms 324.0 KiB
#16 Accepted 22ms 560.0 KiB
#17 Accepted 21ms 560.0 KiB
#18 Accepted 21ms 564.0 KiB
#19 Accepted 21ms 324.0 KiB
#20 Accepted 21ms 328.0 KiB

Code

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define endl "\n"
#define ff first
#define ss second
#define pb push_back
#define all(a) a.begin(),a.end()
#define rall(a) a.rbegin(),a.rend()
#define f(i,x,y) for(int i=x;i<y;i++)
#define f2(i,x,y) for(int i=x;i>=y;i--)
#define pii pair<int,int>
#define Fast ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
const int MOD =1000000007;
const int INF = 1e18;
const int N = 2e5;
 
void solve(int tc){
    int n; cin >> n;
    int sum = 0;
    for(int i=0,x;i<n;i++){
        cin >> x;
        sum += x;
    }
    int low = 1,high = 1e9,mx=0;
    while(low <= high){
        int mid = (low + high) >> 1;
        int val = mid*(mid+1)/2;
        if(val<=sum){
            mx = max(mx,mid);
            low = mid + 1;
        }
        else high = mid - 1;
    }
    cout << mx+1 << endl;
}
int32_t main(){

    Fast

    int t=1;

    cin >> t;

    for(int tc=1;tc<=t;tc++){

        solve(tc);
    }
    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 15:16:04
Judged At
2024-11-11 02:31:02
Judged By
Score
100
Total Time
22ms
Peak Memory
588.0 KiB