原题链接:http://acm.uestc.edu.cn/problem.php?pid=1727
分析:用 l[i] 记录第 i 层楼有多少物品需要往上继续搬运,如果某层楼没有物品,但是更上面还有,则仍需要往上走,所以需要+1.
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<cmath> 5 #include<algorithm> 6 #define maxn 111 7 #define mod 1000007 8 using namespace std; 9 int l[maxn]; 10 int main() 11 { 12 int n,cas=1,s,t,rig; 13 while(~scanf("%d",&n)) 14 { 15 memset(l,0,sizeof(l)); 16 rig=0; 17 for(int i=0;i<n;i++) 18 { 19 scanf("%d%d",&s,&t); 20 l[s]++;l[t]--; 21 rig=max(rig,t); 22 } 23 int sum=0,temp=0; 24 for(int i=1;i<rig;i++) 25 { 26 temp+=l[i]; 27 sum+=temp; 28 if(temp==0)sum+=1; 29 } 30 printf("Case %d: %d ",cas++,sum); 31 } 32 return 0; 33 }