Cod sursa(job #2009628)

Utilizator Mircea_DonciuDonciu Mircea Mircea_Donciu Data 10 august 2017 11:42:31
Problema Multimi2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.39 kb
#include <fstream>
#define DIM 1000000
using namespace std;

ifstream fin ("multimi2.in" );
ofstream fout("multimi2.out");

int N, i, j, k, ok, k1, k2;
int A[DIM], B[DIM], dif;

void Case_1(){
     for(i = 1; i <= N / 2; i += 2){
          A[++k1] = i; A[++k1] = N-i+1;
          B[++k2] = i+1; B[++k2] = N-i;
     }
     dif = 0;
     return;
}

void Case_2(){
     for(i = 2; i <= N / 2; i += 2){
          A[++k1] = i; A[++k1] = N-i+2;
          B[++k2] = i+1; B[++k2] = N-i+1;
     }
     A[++k1] = 1;
     dif = 1;
     return;
}

void Case_3(){
     for(i = 3; i <= N / 2; i += 2){
          A[++k1] = i; A[++k1] = N-i+3;
          B[++k2] = i+1; B[++k2] = N-i+2;
     }
     A[++k1] = 1;
     B[++k2] = 2;
     dif = 1;
     return;
}

void Case_4(){
     for(i = 4; i <= N/2+1; i += 2){
          A[++k1] = i; A[++k1] = N-i+4;
          B[++k2] = i+1; B[++k2] = N-i+3;
     }
     A[++k1] = 1;
     A[++k1] = 2;
     B[++k2] = 3;
     dif = 0;
     return;
}
int main()
{
    fin >> N;
    if(N % 4 == 0) Case_1();
    else if(N % 4 == 1) Case_2();
    else if(N % 4 == 2) Case_3();
    else if(N % 4 == 3) Case_4();
    fout << dif << "\n";
    fout << k1  << "\n";
    for(i = 1; i <= k1; i ++)
         fout << A[i] << " ";
    fout << "\n";
    fout << k2  << "\n";
    for(i = 1; i <= k2; i ++)
         fout << B[i] << " ";
    return 0;
}