Cod sursa(job #676978)

Utilizator alexapoApostol Alexandru Ionut alexapo Data 9 februarie 2012 19:19:46
Problema Parantezare optima de matrici Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <fstream.h>
#include <string.h>
ifstream f("podm.in");
ofstream g("podm.out");
struct nod { 
	int x;
	nod *urm,*prec;
	};
nod *prim,*ultim,*k,*q;
int i,n,nr,s;
int main()
{
	f>>n;
	n++;
	prim=new nod;
	f>>prim->x;
	prim->urm=NULL;
	prim->prec=NULL;
	ultim=prim;
	for(i=2;i<=n;i++)
	{
		nod *p=new nod;
		f>>p->x;
		p->urm=NULL;
		p->prec=ultim;
		ultim->urm=p;
		ultim=p;
	}
	while(prim->urm!=ultim)
	{
		k=prim->urm;
		while(k!=ultim)
		{
			if((nr-k->x)<0||(k==prim->urm))
				nr=k->x,q=k;
			k=k->urm;
		
		}
		q->prec->urm=q->urm;
		q->urm->prec=q->prec;
		s+=q->urm->x*q->x*q->prec->x;
		delete q;
	}
g<<s<<'\n';
	
	f.close();
	g.close();
	return 0;
}