Uva 637 Solution

#include<bits/stdc++.h>
using namespace std;
void odd(int t1, int t2, int i, string st)
{
    cout << "Sheet " << i++ << ", back : " << t1 << ", " << t2 << "\n";
    st = "front";
    int t = 1;
    t1++, t2--;
    while(t1 < t2)
    {
        if(t == 1)
        {
            cout << "Sheet " << i << ", " << st << ": " << t2 << ", " << t1 << "\n";
            st = "back";
            t++;
        }
        else
        {
            cout << "Sheet " << i << ", " << st << " : " << t1 << ", " << t2 << "\n";
            t = 1;
            st = "front";
            i++;
        }
        t1++, t2--;
    }
}
void even(int t1, int t2, int i)
{
    while(t1 < t2)
    {
        cout << "Sheet " << i << ", front: " << t2 << ", " << t1 << "\n";
        t1++, t2--;
        cout << "Sheet " << i++ << ", back : " << t1 << ", " << t2 << "\n";
        t1++, t2--;
    }
}
int main()
{
    int n;
    //freopen("input.txt", "r", stdin);
    while(cin >> n && n != 0)
    {
        int i = 1, t1 = 1, t2 = n;
        cout << "Printing order for " << n << " pages:\n";
        if(n%4 == 3)
        {
            cout << "Sheet " << i << ", front: Blank, 1" << "\n";
            t1 = 2;
            odd(t1, t2, i, "back");
        }
        else if(n%4 == 2)
        {
            cout << "Sheet " << i << ", front: Blank, 1" << "\n";
            cout << "Sheet " << i++ << ", back : 2, Blank" << "\n";
            if(n == 2)
            {
                continue;
            }
            t1=3;
            even(t1, t2, i);
        }
        else if(n%4 == 1)
        {
            cout << "Sheet " << i << ", front: Blank, 1" << "\n";
            if(n == 1)
                continue;
            cout << "Sheet " << i++ << ", back : 2, Blank" << "\n";
            cout << "Sheet " << i << ", front: Blank, 3" << "\n";
            t1 = 4;
            odd(t1, t2, i, "back");
        }

        else if(n%4 == 0)
        {
            even(t1, t2, i);
        }
    }

    return 0;
}

Comments