/ SeriousOJ /

Record Detail

Accepted


  
# Status Time Cost Memory Cost
#1 Accepted 1ms 532.0 KiB
#2 Accepted 16ms 532.0 KiB
#3 Accepted 40ms 532.0 KiB
#4 Accepted 46ms 764.0 KiB
#5 Accepted 42ms 532.0 KiB
#6 Accepted 20ms 532.0 KiB
#7 Accepted 20ms 532.0 KiB
#8 Accepted 48ms 764.0 KiB
#9 Accepted 45ms 532.0 KiB
#10 Accepted 38ms 532.0 KiB
#11 Accepted 19ms 324.0 KiB
#12 Accepted 25ms 532.0 KiB
#13 Accepted 20ms 556.0 KiB
#14 Accepted 20ms 536.0 KiB
#15 Accepted 19ms 532.0 KiB
#16 Accepted 20ms 532.0 KiB
#17 Accepted 47ms 532.0 KiB
#18 Accepted 22ms 324.0 KiB
#19 Accepted 22ms 532.0 KiB
#20 Accepted 23ms 532.0 KiB

Code

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

/*#ifndef ONLINE_JUDGE
#include "DEBUG.h"
#define bug(...)           __f (#__VA_ARGS__, __VA_ARGS__)
#endif*/

#define first_in_out       ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
#define ll                 long long int
#define double             long double
#define min_heap           priority_queue <ll, vector<ll>, greater<ll>>
#define print(a)           for(auto x : a) cout << x << " ";
#define printpair(a)       for(auto x : a) cout << x.first << " " << x.second<<"\n";



void solve()
{
	int n;
	cin >> n;

	ll sum = 0;
	for (int i = 0; i < n; i++)
	{
		int x;
		cin >> x;
		sum += x;
	}



	ll left = 0, right = 1e10, mid = 0, ans = 1;


	while (left <= right)
	{
		mid = (left + right) / 2;

		ll v = (mid * (mid + 1)) / 2;
		if (v <= sum) {
			left = mid + 1;
			ans = mid;
		}
		else
			right = mid - 1;

	}
	ans += 1;
	cout << ans << "\n";

}


int main()
{
	first_in_out
	//clock_t z = clock();

	int t = 1;
	cin >> t;

	while (t--)
		solve();

	//cerr << "Run Time : " << ((double)(clock() - z) / CLOCKS_PER_SEC);
}

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:30:50
Judged At
2024-11-05 15:30:50
Judged By
Score
100
Total Time
48ms
Peak Memory
764.0 KiB