Pagini recente » Cod sursa (job #1765026) | Cod sursa (job #3198396) | Cod sursa (job #1294336) | Cod sursa (job #2786126) | Cod sursa (job #2199239)
#include <fstream>
using namespace std;
ifstream f("perechi2.in");
ofstream g("perechi2.out");
int n,a[10005],P[10005];
void Cerinta1()
{
int i,cnt=1;
for(i=2;i<=n;++i)
if(a[i]!=a[i-1]) cnt++;
if(cnt!=2||a[2]==a[3])
{
g<<"0\n";
return ;
}
cnt=a[3]-a[2];
g<<P[1]<<" "<<P[2]<<" "<<cnt<<"\n";
}
void Cerinta2()
{
int i,ultim,v;
ultim=n;
for(i=1;i<n;i+=2)
{
v=a[ultim]-a[i];
if(v>0)
{
a[i]+=v;
a[i+1]+=v;
g<<P[i]<<" "<<P[i+1]<<" "<<v<<"\n";
a[++ultim]=a[i];
P[ultim]=P[i];
a[++ultim]=a[i+1];
P[ultim]=P[i+1];
}
}
for(;i<ultim;i+=2)
{
v=a[ultim]-a[i];
if(v>0)
{
a[i]+=v;
a[i+1]+=v;
g<<P[i]<<" "<<P[i+1]<<" "<<v<<"\n";
}
}
}
int main()
{
int i,j,C;
f>>C>>n;
for(i=1;i<=n;++i)
{
f>>a[i];
P[i]=i;
}
for(i=1;i<n;++i)
for(j=i+1;j<=n;++j)
if(a[i]>a[j])
{
swap(a[i],a[j]);
swap(P[i],P[j]);
}
if(C==1) Cerinta1();
else Cerinta2();
g.close();
return 0;
}