Pagini recente » Diferente pentru teorema-chineza-a-resturilor intre reviziile 89 si 45 | Cod sursa (job #876087) | Cod sursa (job #1648891) | Cod sursa (job #1371925) | Cod sursa (job #1443889)
#include<fstream>
#include<iostream>
using namespace std;
ifstream fin ("dame.in");
ofstream fout("dame.out");
int n,i,j,t,a[1001];
void schimba (int x, int y)
{
int aux;
aux=x;
x=y;
y=aux;
}
int main ()
{
fin>>n;
int k=0;
if(n==1 || n==2)
{
fout<<1<<'\n';
fout<<"1"<<" "<<"1";
k=1;
}
else
if(n==3)
{
fout<<2<<'\n';
fout<<"1"<<" "<<"1"<<'\n'<<"2"<<" "<<"3";
k=1;
}
else
if(n>3)
{
t=n%12;
j=2;i=0;
while (j<=n)
{
i++;
a[i]=j;
j+=2;
}
if (t==3 || t==9)
{
for (j=1; j<=i-1; j++)
a[j]=a[j+1];
a[i]=2;
}
j=1;
while (j<=n)
{
i++;
a[i]=j;
j+=2;
}
if (t==8)
{
i=0;
for (i=n/2+2; i<=n; i+=2)
{
int x=a[i];
a[i]=a[i-1];
a[i-1]=x;
}
}
if (t==2)
{
a[n/2+1]=3;
a[n/2+2]=1;
for (i=n/2+3; i<=n-1; i++)
a[i]=a[i+1];
a[n]=5;
}
if (t==3 || t==9)
{
for (i=n/2+1; i<=n-2; i++)
a[i]=a[i+2];
a[n-1]=1;
a[n]=3;
}
}
fout<<n;
for(i=1;i<=n;i++)
{fout<<i<<" "<<a[i];
fout<<'\n';
}
return 0;
}