Cod sursa(job #918766)

Utilizator apopeid13Apopeid Alejandro apopeid13 Data 19 martie 2013 09:30:47
Problema Multimi2 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.96 kb
#include <cstdio>
#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 contor    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;}