题意:给一张纸上有h行w列,再给n个词语,问需要多少张纸才能把这些词语全都在记录下来。。纯模拟。。
#include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <set> #include <vector> #include <map> #include <queue> #include <set> #include <algorithm> using namespace std; int h,w,n; char str[10010][110]; int main() { while(~scanf("%d%d%d",&h,&w,&n)){ for(int i=0;i<n;i++)scanf("%s",str[i]); int row=1,col=0; for(int i=0;i<n;i++){ col+=strlen(str[i]); if(col>w){ col=strlen(str[i]); row++; ++col; if(col>=w){ ++row; col=0; } } else if(col==w){ col=0; ++row; } else { ++col; if(col>=w){ ++row; col=0; } } } if(col==0)row--; printf("%d\n",row/h+(row%h!=0)); } return 0; }
|