Cod sursa(job #1960988)

Utilizator ioanavasilescuIoana Vasilescu ioanavasilescu Data 10 aprilie 2017 20:17:27
Problema Cautare binara Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.86 kb
#include <iostream>
#include <cstdio>
#include <cstring>
#include <fstream>

using namespace std;

char s[1010];
string cuvant[128];

int main()
{
    ifstream fin("text4.in");
    ofstream fout("text4.out");
    int m,l,c,i,j,k,lc,luc,spatii,nrspatiimari;
    FILE *f=fopen("text4.in","r");
    fscanf(f,"%d\n",&m);
    while(1)
    {
        fgets(s,1000,f);
        bool este=0,spatiu;
        if(s[strlen(s)-1]=='\n')s[strlen(s)-1]=0,este=1;
        if(!este)break;
        i=0;j=0;
        while(1)
        {
            l=-1;lc=0;c=0;
            while(l<m&&s[i])
            {
                luc=0;
                while(s[i]!=' '&&s[i])
                    i++,lc++,luc++;
                i++;
                if(luc)l+=luc+1,c++;
            }
            i-=2;
            if(l<m)
            {
                fout<<s+j<<"\n";
                break;
            }
            else
            {
                if(l>m)i-=luc+1,lc-=luc,c--;
                spatii=(m-lc)/(c-1);
                nrspatiimari=(m-lc)%(c-1);
                for(j=j;j<=i;j++)
                {
                    spatiu=0;
                    while(s[j]==' ')
                            j++,spatiu++;
                    if(spatiu)
                    {
                        j--;
                        if(nrspatiimari>0)
                            for(k=1;k<=spatii+1;k++)
                                fout<<" ";
                        else
                            for(k=1;k<=spatii;k++)
                                fout<<" ";
                        nrspatiimari--;
                    }
                    else fout<<s[j];
                }
                fout<<"\n";
                i++;
                while(s[i]==' ')
                        i++;
                j=i;
            }
        }
    }
    return 0;
}