#CS50302. 完善程序3-枚举算法-2数字删除

完善程序3-枚举算法-2数字删除

坐标统计

输入 n 个整点在平面上的坐标。对于每个点,可以控制所有位于它左下方的点(即 x,y 坐标都比它小),它可以控制的点的数目称为“战斗力”。依次输出每个点的战斗力,最后输出战斗力最高的点的编号(如果若干个点的战斗力并列最高,输出其中最大的编号)。

#include <iostream>

using namespace std;

const int SIZE =100;

int x[SIZE],y[SIZE],f[SIZE];

int n,i,j,max_f,ans;

int main()

{

    cin>>n;

    for(i=1;i<=n;i++) cin>>x[i]>>y[i];

    max_f=0;

    for(i=1;i<=n;i++)

    {

        f[i]= [  ①   ];

        for(j=1;j<=n;j++)

        {

            if(x[j]<x[i] && [   ②    ])

            [      ③      ] ;

        }

        if( [     ④       ])

        {

            max_f=f[i];

            [    ⑤    ];    

        }

    }

    for(i=1;i<=n;i++) cout<<f[i]<<endl;

    cout<<ans<<endl;

    return 0;    

}
  1. ①处应填( ){{ select(1) }}
  • i
  • 0
  • x[i]
  • y[i]
  1. ②处应填( ){{ select(2) }}
  • y[i]<y[j]
  • y[j]<y[i]
  • y[i]<=y[j]
  • y[j]<=y[i]
  1. ③处应填( ){{ select(3) }}
  • f[i]=x[i]
  • f[i]=0
  • f[i]++
  • f[i]=y[i]
  1. ④处应填( ){{ select(4) }}
  • f[i]>max_f
  • f[i]<max_f
  • f[i]>=max_f
  • f[i]<=max_f
  1. ⑤处应填( ){{ select(5) }}
  • ans=i
  • ans<max_f
  • ans=f[i]
  • ans=0