Pagini recente » Cod sursa (job #1503990) | Cod sursa (job #1199294) | Cod sursa (job #3030935) | Cod sursa (job #1104143) | Cod sursa (job #2486841)
#include <bits/stdc++.h>
#define inf 65000
#define dim 65
using namespace std;
ifstream fin("adunare.in");
ofstream fout("adunare.out");
unsigned short n,t,sol[dim][dim],aux[dim][dim],niv,i,j;
unsigned short T[dim*(dim+1)*(2*dim+1)/6+10],tata[dim][dim];
unsigned short dad,minn,pozi,pozj;
void bordura(unsigned short v[dim][dim],unsigned short n){
for(int i=0;i<=n+1;i++)
v[0][i]=v[i][0]=v[n+1][i]=v[i][n+1]=inf;
}
void copiez(unsigned short a[dim][dim],unsigned short b[dim][dim],unsigned short n){
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
a[i][j]=b[i][j];
}
unsigned short poz(int niv,int i,int j){
niv--;
return (unsigned short)(1LL*(niv*(niv+1)*(2*niv+1))/6+(niv+1)*(i-1)+j);
}
void rec(int x){
if(x==0)
return;
rec(T[x]);
fout<<x<<" ";
}
int main(){
int a,b;
fin>>a>>b;
fout<<a+b;
return 0;
fin>>n;
t=1;
fin>>sol[1][1];
for(niv=2;t<n;niv++){
bordura(sol,niv-1);
for(i=1;i<=niv;i++)
for(j=1;j<=niv;j++)
tata[i][j]=poz(niv-1,i,j);
for(i=1;i<=niv;i++)
for(j=1;j<=niv;j++){
fin>>aux[i][j];
dad=tata[i-1][j-1];
minn=sol[i-1][j-1];
if(minn>sol[i-1][j]){
minn=sol[i-1][j];
dad=tata[i-1][j];
}
if(minn>sol[i][j-1]){
minn=sol[i][j-1];
dad=tata[i][j-1];
}
if(minn>sol[i][j]){
minn=sol[i][j];
dad=tata[i][j];
}
// cout<<minn<<endl;
aux[i][j]+=minn;
t++;
T[t]=dad;
}
copiez(sol,aux,niv);
}
niv--;
minn=inf;
for(i=1;i<=niv;i++)
for(j=1;j<=niv;j++){
if(minn>sol[i][j]){
minn=sol[i][j];
pozi=i;
pozj=j;
}
}
fout<<niv<<" ";
fout<<minn<<"\n";
int x=poz(niv,pozi,pozj);
//cout<<i<<" "<<j<<" "<<niv;
rec(x);
}