Cod sursa(job #2351019)

Utilizator SmitOanea Smit Andrei Smit Data 21 februarie 2019 21:31:06
Problema Subsir crescator maximal Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.59 kb
#include <fstream>
#include <iostream>

using namespace std;

/*
void mutare1(int a[], int n, int sec)
{
{1}
    a[1] = b;
    for(int i=2;i<=n+1;i++) a[i] = 0;
    while(sec > 0)
    {
        a[1]--;
        for(int i=2;i<=n+1;i++)
            if(i<)
{1}
}*/

void Mutare1(int a[], int n,int sec)
{
    //cout<<"sec="<<sec<<"\n";
    int i;
    while(sec>0)
    {
        for(i=n;i>=1;--i)
        {
            if(a[i]>0)
            {
                a[i+1]++;
                a[i]--;
            }
        }
        sec--;

    }
}

void Mutare2(int a[], int n,int sec)
{
    int i;
    while(sec>0)
    {
        for(i=2;i<=n+1;++i)
            if(a[i]>0)
            {
                a[i]--;
                a[i-1]++;

            }
        sec--;
    }
}

int main()
{
    ifstream f("clepsidru.in");
    ofstream g("clepsidru.out");
    int n, b, k, sec, p;

    f>>n>>b;
    //cout<<"n="<<n<<"\n";
    int a[n+3];
    a[1] = b;
    for(int i=2;i<=n+1;i++) a[i] = 0;
    f>>k;
    for(int i=1;i<=k;i++)
    {
        f>>sec>>p;
        //cout<<sec<<" "<<p<<"     sec p\n";
        if(p==1)
        {
            Mutare1(a,n,sec);
        }
        else
            Mutare2(a,n,sec);
    }
    g<<n+b-1<<"\n";//cerinta 1

    if(p==1)
    {
        for(int i=1;i<n;++i)
            g<<a[i]<<" "<<0<<"\n";
        g<<a[n]<<" "<<a[n+1]<<"\n";
    }
    else
        if(p==2)
        {
            g<<a[1]<<" "<<a[2]<<"\n";
            for(int i=3;i<=n+1;++i)
                g<<"0"<<" "<<a[i]<<"\n";

        }

    return 0;
}