Pagini recente » Cod sursa (job #2677077) | Cod sursa (job #1440603) | Cod sursa (job #2927070) | Cod sursa (job #478196) | Cod sursa (job #1687061)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("multimi2.in");
ofstream g("multimi2.out");
int n,dif,a[1000001],b[1000001],carda,cardb;
void rest0()
{
dif=0; int i;for(i=1;i<=n/2;i+=2){a[++carda]=i; b[++cardb]=i+1;a[++carda]=n-i+1; b[++cardb]=n-i;}
}
void rest1()
{
dif=1; int i; a[++carda]=1; for(i=2;i<=n/2;i+=2){a[++carda]=i; b[++cardb]=i+1;a[++carda]=n-i+2; b[++cardb]=n-i+1;}
}
void rest2()
{
dif=1; int i; a[++carda]=1; b[++cardb]=2; for(i=3;i<=n/2;i+=2){a[++carda]=i; b[++cardb]=i+1; a[++carda]=n-i+3; b[++cardb]=n-i+2; }
}
void rest3()
{
dif=0;int i; a[++carda]=1; a[++carda]=2; b[++cardb]=3; for(i=4;i<=n/2+1;i+=2){a[++carda]=i; b[++cardb]=i+1; a[++carda]=n-i+4; b[++cardb]=n-i+3; }
}
void solve()
{
f>>n;
if(n%4==0)rest0(); else
if(n%4==1)rest1(); else
if(n%4==2)rest2(); else
if(n%4==3)rest3();
}
void afisare()
{
g<<dif<<'\n'; int i; g<<carda<<'\n';
for(i=1;i<=carda;i++)g<<a[i]<<" "; g<<'\n';
g<<cardb<<'\n'; for(i=1;i<=cardb;i++)g<<b[i]<<" ";
}
int main()
{
solve(); afisare();
return 0;
}