Cod sursa(job #1550121)

Utilizator LightningShockMarcu Andrei LightningShock Data 13 decembrie 2015 11:43:52
Problema Hashuri Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 2.24 kb
#include <fstream>
#include <string.h>
using namespace std;
ifstream fin("ceas2.in");
ofstream fout("ceas2.out");
int v[]={0,8,4,2,1},i,j,t,h,m,s,st,a[5][9],u[5],p,b[4][9],k;
char sir[33];
int main()
{
    for(i=1;i<=4;i++)
    {
        fin.get(sir,9);
        fin.get();
        for(j=0;j<=7;j++)
        {
            if(sir[j]=='o')
                a[i][j+1]=1;
                else
                    if(sir[j]=='x')
                        a[i][j+1]=0;
                        else
                            a[i][j+1]=-1;
            b[i][j]=a[i][j];
        }
    }
     for(i=1;i<=4;i++)
    {
        for(j=1;j<=8;j++)
            fout<<a[i][j]<<" ";
        fout<<'\n';
    }
    fin.get(sir,11);
    t=0;
    for(i=0;i<strlen(sir);i++)
        t=t*10+(int)(sir[i])-48;
    for(j=1;j<=8;j++)
    {
        u[j]=0;
        for(i=4;i>=1;i--)
            if(a[i][j]==1)
                u[j]=u[j]+(1<<(4-i));
    }
    h=u[1]*10+u[2];
    m=u[3]*10+u[4];
    s=u[5]*10+u[6];
    st=u[7]*10+u[8];
    st=st+t;
    s=s+st/100;
    st=st%100;
    m=m+s/60;
    s=s%60;
    h=h+m/60;
    m=m%60;
    h=h%24;
    p=h/10;
    u[1]=h/10;
    u[2]=h%10;
    u[3]=m/10;
    u[4]=m%10;
    u[5]=s/10;
    u[6]=s%10;
    u[7]=st/10;
    u[8]=st%10;
    for(i=1;i<=4;i++)
        for(j=1;j<=8;j++)
            a[i][j]=-1;
    for (i=1;i<=8;i++)
        fout<<u[i]<<" ";
    fout<<'\n';
    for(j=1;j<=8;j++)
    {
        i=4;

            k=0;
        while(u[j]!=0)
        {

           a[i][j]=u[j]%2;
           k++;
           u[j]=u[j]/2;
           i--;
        }
        p=i;
        if(k<4)
        {
            for(int h=p;h>=1;h--)
                if(b[h][j]==-1)
                    a[h][j]=-1;
                        else
                            a[h][j]=0;
        }
    }
    for(i=1;i<=4;i++)
    {
        for(j=1;j<=8;j++)
            fout<<a[i][j]<<" ";
        fout<<'\n';
    }
    for(i=1;i<=4;i++)
    {
        for(j=1;j<=8;j++)
        {
            if(a[i][j]==1)
                fout<<'o';
            if(a[i][j]==0)
                fout<<'x';
            if(a[i][j]==-1)
                fout<<' ';
        }
        fout<<'\n';
    }
    return 0;
}