CF581B Luxurious Houses

题目大意是给定了一排房子的高度,定义一个概念,当某一幢房子的高度比它右边(即编号比它大的)所有房子层数都要多时,我们便说它是豪华的房子。问题是若第i幢房子是豪华的,则它需要再增加多少层?并以一个数列的形式输出。只要用一个变量存储当前房子右边所有房子最高的层数,然后从后往前扫一遍整个数组即可。代码贴出来:

#include 
#include 

int main()
{
    int n,*p,*need;
    while(scanf("%d",&n)!=EOF){
        int i,ma;
        p=(int *)malloc(sizeof(int)*n);
        need=(int *)malloc(sizeof(int)*n);
        for(i=0;i=0;i--){
            *(need+i)=ma-*(p+i)+1;
            if(ma<*(p+i)){
                ma=*(p+i);
            }
        }
        for(i=0;i


你可能感兴趣的:(CF581B Luxurious Houses)