Pagini recente » Cod sursa (job #678012) | Cod sursa (job #1626758) | Cod sursa (job #1525455) | Cod sursa (job #2098463) | Cod sursa (job #1972480)
#include <fstream>
#include <cstring>
using namespace std;
ifstream in ("pic.in");
ofstream out ("pic.out");
int n,s=0,p;
long long lmax= 1LL <<62;
int m[55][55];
long long t[55][55];
void citire()
{
in>>n;
for(int i=1; i<=n; ++i)
for(int j=1; j<=i; ++j)
{
in>>m[i][j];
s+=m[i][j];
}
}
bool verificare(long long x)
{
memset(t,0,sizeof(t));
t[1][1]=x;
for(int i=1; i<=n; ++i)
for(int j=1; j<=i; ++j)
{
t[i+1][j]+=(t[i][j]-m[i][j]+1)/2;
t[i+1][j+1]+=(t[i][j]-m[i][j])/2;
}
for(int i=1; i<=n; ++i)
if (t[n][i]<m[n][i])
return 0;
return 1;
}
int main()
{
int n,j,maxx=0,nr,poz;
in>>p;
if (p==1)
{
in>>n;
for (int i=1; i<=n; i++)
{
s=0;
for (int j=1; j<=i; j++)
{
in>>nr;
s+=nr;
}
if (maxx<s)
{
maxx=s;
poz=i;
}
}
out<<poz;
return 0;
}
citire();
long long rez=-1,st=s,dr=lmax,mij;
while(st<=dr)
{
mij=(dr+st)/2;
if(verificare(mij)!=0)
{
rez=mij;
dr=mij-1;
}
else
st=mij+1;
}
out<<rez<<" "<<rez-s<<'\n';
return 0;
}