Pagini recente » Cod sursa (job #1401052) | Cod sursa (job #1984097) | Cod sursa (job #1069680) | Cod sursa (job #2046679) | Cod sursa (job #800348)
Cod sursa(job #800348)
//* Se insereaza numerele pare de la 2 la N intr-o lista
//* Daca restul lui N la 12 este 3 sau 9 se muta 2 la sfarsitul listei
//* Se insereaza numerele impare de la 1 la N in lista
//* Daca restul este 8 se interschimba perechile (3 1, 7 5, ...)
// * Daca restul este 2 se interschimba 1 cu 3 si 5 se muta la sfarsitul listei
// * Daca restul este 3 sau 9 se muta 1 si 3 la sfarsitul listei
#include<fstream>
using namespace std;
ifstream f("dame.in");
ofstream g("dame.out");
int n,i,j,a[101],b[101],c[202],k1,k2;
void swap(int a,int b)
{
int e;
e=a;
a=b;
b=a;
}
void scrie()
{
g<<n<<'\n';
for(i=1; i<=n; i++) g<<i<<" "<<c[i]<<'\n';
}
int main()
{f>>n; k1=1; k2=1;
for(i=2; i<=n; i+=2) c[i/2]=i;
for(i=1; i<=n; i+=2) c[n/2+i/2+1]=i;
if(n == 2)
g<<"1"<<'\n'<<"1"<<" "<<"1";
if(n == 3)
g<<"2"<<'\n'<<"1"<<" "<<"1"<<'\n'<<"2"<<" "<<"3";
if(n%12 == 2)
{
c[n/2+1]=3;
c[n/2+2]=1;
for(i=n/2+3; i<n; i++) c[i]=c[i+1];
c[n]=5;
}
if(n%12 == 8)
{
for(i=1; i<=n; i++) swap(c[i],c[i+1]);
}
if(n%12 == 3 || n%12 == 9)
{
for(i=1; i<=n/2; ++i) c[i]=c[i+1];
c[n/2]=2;
for(i=n/2+1; i<n-1; ++i) c[i]=c[i+2];
c[n-1]=1;
c[n]=3;
}
scrie();
return 0;
}