题目
柯南已经从灰原哀那里得到了一些关于OIBH组织的情报, 他想在阿笠把整理的资料打印出来, 仔细研究.
这份资料的正文包含许多行,某些行可能包含一些脚注标记,一个脚注可能包含一行或多行,并且必须和对应的脚注标记印刷在同一页
一页所允许印刷的最多行数是已知的,任何一页都不允许超过该行数(包括脚注)
但是阿笠博士的纸不多了, 柯南只好尽可能的少用纸, 他想知道这份资料最少要用多少页
题解
对于每一行,判断这一行加上其脚注总行数的值是否大于当前页剩余行数,如果是开新页,否则减当前页剩余行数。
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| #include<cstdio> const int MAXN=1000+5; int n,k,f,foot[MAXN][2],total[MAXN]; int main() { int a,ln; scanf("%d %d",&n,&k); scanf("%d",&f); for(int i=1;i<=f;i++) { scanf("%d %d",&ln,&a); total[ln]+=a; } int now=1,left=k,ans=1,nowfoot=1,line=foot[1][0],use; while(now<=n) { if(left<1) { ans++; left=k; } left--; use=total[now]; if(use) { if(left<use) { ans++; left=k-1; } left-=use; } now++; } printf("%d",ans); return 0; }
|