标签:hellip 任务 nbsp http 空行 包含 mamicode 内存限制 int

史蒂文·爱在手机上读书。 他现在阅读的书包含N个段落,第i个段落包含ai字符。史蒂文想使字符更易于阅读,因此他决定增加字符的字体大小。 但史蒂文(Steven)的手机屏幕尺寸有限。 其宽度为W,高度为H。因此,如果字符的字体大小为S,则它只能在一行中显示⌊W/S⌋个字符,而在页面中仅显示⌊H/S⌋行。(⌊x⌋是不超过x的最大整数)因此,这里的问题是,如果史蒂文想控制页数不超过P,那么他可以设置的最大字体大小是多少? 请注意,段落必须以换行开头,并且段落之间没有空行。
输入可能包含多个测试用例。第一行是一个整数任务,表示测试用例的数量。对于每个测试用例,第一行包含四个整数N、P、W和H,如上所述。第二行包含N个整数a1 a2…表示每个段落中的字符数。
输出可以设置的最大字体大小。
样例输入:
2 1 10 4 3 10 2 10 4 3 10 10
样例输出:
3 2
代码如下:
#include<stdio.h>
#include<string.h>
main()
{
int N;
scanf("%d",&N);
int i,j,accum[N],data[N][999],n[N],p[N],w[N],h[N],flag=1;
memset(accum,0,sizeof(accum));
memset(data,0,sizeof(data));
for(i=0;i<N;i++)
{
scanf("%d%d%d%d",&n[i],&p[i],&w[i],&h[i]);
for(j=0;j<n[i];j++)
{
scanf("%d",&data[i][j]);
accum[i]+=data[i][j];
}
}
for(i=0;i<N;i++)
{
int size=w[i]>h[i]?h[i]:w[i];
for(;size>=1;size--)
{
int row=h[i]/size;//行数
int column=w[i]/size;//列数
int total_row=row*p[i];//总行数
int accum=0;//使用的行数
flag=1;
for(j=0;j<999&&data[i][j]!=0;j++)
{
int temp=data[i][j]/column;
accum+=temp;
if(temp*column<data[i][j])
accum++;
if(accum>total_row)
flag=0;
}
if(flag)break;
}
if(flag)
printf("%d\n",size);
else
printf("0\n");
}
}
标签:hellip 任务 nbsp http 空行 包含 mamicode 内存限制 int
原文地址:https://www.cnblogs.com/yunners/p/13164259.html