Pagini recente » Cod sursa (job #30692) | Cod sursa (job #1801865) | Cod sursa (job #2977973) | Cod sursa (job #1311602) | Cod sursa (job #862385)
Cod sursa(job #862385)
#include <fstream>
using namespace std;
int main()
{
//Deschiderea fisierelor de intrare si iesire
ifstream fin("multimi2.in");
ofstream fout("multimi2.out");
//Cele doua variabile necesare, n este numarul de numere iar i este contro
int n,i;
//Se citeste n
fin>>n;
//Se rezolva cerinta in functie de restul impartirii lui n la 4, solutii de 0
//fiind pentru 0 si 3 iar de 1 pentru 1 si 2
if(n%4==0)
{
fout<<"0\n";
//Ideea din spatele fiecarei ramuri a if-ului este ca pentru 4 numere consecutive putem obtine 0 (n+1-n-2-n-3+n+4)
fout<<n/2<<'\n'; //n/4*2
for(i=1;i+3<=n;i+=4)
fout<<i<<' '<<i+3<<' ';
fout<<'\n';
fout<<n/2<<'\n'; //n/4*2
for(i=2;i+1<=n;i+=4)
fout<<i<<' '<<i+1<<' ';
fout<<'\n';
}
else if(n%4==1)
{
fout<<"1\n";
fout<<n/2+1<<'\n';
fout<<"1 ";
for(i=2;i+3<=n;i+=4)
fout<<i<<' '<<i+3<<' ';
fout<<'\n';
fout<<n/2<<'\n';
for(i=3;i+1<=n;i+=4)
fout<<i<<' '<<i+1<<' ';
fout<<'\n';
}
else if(n%4==2)
{
fout<<"1\n";
fout<<((n/4)*2)+1<<'\n';
fout<<"1 ";
for(i=3;i+3<=n;i+=4)
fout<<i<<' '<<i+3<<' ';
fout<<'\n';
fout<<(n/4*2)+1<<'\n';
fout<<"2 ";
for(i=4;i+1<=n;i+=4)
fout<<i<<' '<<i+1<<' ';
fout<<'\n';
}
else if(n%4==3)
{
fout<<"0\n";
fout<<(n/4*2)+2<<'\n';
//Pentru n%4==0 folosim 1 si 2 in primul vector si 3 in cel de-al doilea
fout<<"1 2 ";
for(i=4;i+3<=n;i+=4)
fout<<i<<' '<<i+3<<' ';
fout<<'\n';
fout<<((n/4)*2)+1<<'\n';
fout<<"3 ";
for(i=5;i+1<=n;i+=4)
fout<<i<<' '<<i+1<<' ';
fout<<'\n';
}
//Inchiderea fisierelor de intrare si iesire
fin.close();
fout.close();
return 0;
}