Pagini recente » Cod sursa (job #2000071) | Cod sursa (job #2086980) | Cod sursa (job #2176448) | Cod sursa (job #872713) | Cod sursa (job #691769)
Cod sursa(job #691769)
#include<iostream>
#include<fstream>
#include<vector>
#include<string.h>
using namespace std;
ifstream in("paginatie.in");
ofstream out("paginatie.out");
struct el {
int nrc,lu;
};
int x,y,t1,t2,t3,nrc,nrl,ifspace;
vector<el> nrr;
char a[1001],b[1001];
int main() {
int tm,i,j,k;
el t;
in >> x >> y;
in.getline(a,1001);
while(!in.eof()) {
in.getline(a,1001);
if(in.eof())
break;
++nrc;
t2=strlen(a);
if(t1+t2 + t3 + ifspace>y) {
++nrl;
b[0]=0;
ifspace=0;
--nrc;
t.nrc=nrc; t.lu=t1+ t3;
nrr.push_back(t);
t1=0;
nrc=1;
}
else
if(t1+t2 + t3 + ifspace+1==y) {
t.nrc=nrc; t.lu=t1+t2+t3;
nrr.push_back(t);
++nrl;
b[0]=0;
ifspace=0;
t1=0;
nrc=1;
continue;
}
if(b[0]!=0) {
if(ifspace)
++t1;
ifspace=1;
}
t1+=strlen(b);
strcpy(b,a);
t3=t2;
}
if(b[0]!='0') {
t.nrc=nrc; t.lu=t1;
nrr.push_back(t);
}
in.close();
ifstream inn("paginatie.in");
inn >> x >> y;
inn.getline(a,1001);
for(i=0;i!=nrr.size();++i) {
if(nrr[i].nrc==1) {
inn.getline(a,1001);
out << a << "\n";
if((i+1)%x==0)
out << "\n";
continue;
}
if((i+1)%x==0)
out << "\n";
t1=(y-nrr[i].lu)/(nrr[i].nrc-1);
t2=y-nrr[i].lu - t1*(nrr[i].nrc-1);
inn.getline(a,1001);
out << a;
for(j=1;j<=t2;++j) {
inn.getline(a,1001);
for(k=1;k<=t1;++k)
out << " ";
out << " " << a;
}
for(j=t2+1;j<=nrr[i].nrc-1;++j) {
inn.getline(a,1001);
for(k=1;k<=t1;++k)
out << " ";
out << a;
}
out << "\n";
}
return 0;
}