Pagini recente » Cod sursa (job #1735719) | Cod sursa (job #2557201) | Cod sursa (job #1744819) | Cod sursa (job #2583641) | Cod sursa (job #926966)
Cod sursa(job #926966)
#include <iostream>
#include <fstream>
#include <algorithm>
#include <cassert>
using namespace std;
ifstream fin("lumanari.in");
ofstream fout("lumanari.out");
int n, timpref;
long long sum, numar;
void Citire(){
long long x;
fin>>n;
for(int i=1; i<=n;i++){
fin>>x;
sum += x;
timpref++;
}
}
int zile(long long timp){
numar = (long long)(timp*(timp+1)/2);
if(numar < sum) return 1;
if(numar == sum) return 3;
return 0;
}
void Nrzile(){
long long st = -1, dr = timpref+1, m;
while(dr - st > 1){
m = dr + (st-dr)/2;
if(zile(m) == 3) {fout<<m; return ;}
else if(zile(m)) st = m;
else dr = m;
}
fout<<m;
}
int main()
{
Citire();
Nrzile();
return 0;
}