Pagini recente » Istoria paginii runda/oji20091112/clasament | Istoria paginii utilizator/za_flafi_uan | Cod sursa (job #1684945) | Cod sursa (job #2801466) | Cod sursa (job #1981891)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("nrtri.in");
ofstream g("nrtri.out");
int v[100],x[100],n,nrsol;
void citire(int&n,int v[100])
{
f >> n;
for(int i=1;i<=n;i++)
f >> v[i];
}
int solutie(int k)
{
if(k!=3)
return 0;
if(k>2)
if(v[x[k]]+v[x[k-1]]<=v[x[k-2]]||v[x[k-1]]+v[x[k-2]]<=v[x[k]]||v[x[k]]+v[x[k-2]]<=v[x[k-1]])
return 0;
return 1;
}
int valid(int k)
{
if(k>1)
if(x[k+1]>=x[k])
return 0;
return 1;
}
void bkt()
{
int k;
k=1;
x[k]=0;
while(k!=0)
if(x[k]<n)
{
x[k]=x[k]+1;
if(valid(k))
if(solutie(k))
nrsol++;
else
{
k++;
x[k]=0;
}
}
else
k--;
}
int main()
{
citire(n,v);
bkt();
g << nrsol;
}