CCF—窗口 20140302

数组法:

#include<iostream>

using namespace std;
int main(){
int n,m,t1;
cin>>n>>m;
   int arr[n][5],brr[m][2]; 
for(int i=0;i<n;i++){
arr[i][0]=i+1;
for(int j=1;j<5;j++)
cin>>arr[i][j];
}
for(int i=0;i<m;i++)
for(int j=0;j<2;j++)
cin>>brr[i][j];

bool flag=false;
for(int i=0;i<m;i++){
for(int j=n-1;j>=0;j--){
if(arr[j][1]<=brr[i][0]&&brr[i][0]<=arr[j][3]&&arr[j][2]<=brr[i][1]&&brr[i][1]<=arr[j][4]){    
            cout<<arr[j][0]<<endl;
              flag=true;
           if(j==n-1)break;
           else
{
         for(int k=0;k<5;k++){//利用循环来变换二维数组中的两行 
     for(int p=j;p<n-1;p++)
 {
  t1=arr[p][k];
  arr[p][k]=arr[p+1][k];
  arr[p+1][k]=t1;
// t1=arr[n-1][k];
// arr[n-1][k]=arr[j][k];
// arr[j][k]=t1;    
 }
        }

         break;//终止内循环
           }
     
}

   else flag=false;//这句话不加不行,因为flag是变量, 后期会在紧接着一次的基础上更新为true  
}
//输出结果展示 
/*
for(int i=0;i<n;i++){
for(int j=1;j<5;j++)
cout<<arr[i][j]<<" ";
cout<<"******"<<endl;
  }
*/   
if(!flag) cout<<"IGNORED"<<endl;


}



结构体法:

#include<bits/stdc++.h>
using namespace std;
const int N=10; 
struct W{
int id;
int x1,y1,x2,y2;
}windows[N]; 
struct P{
int x,y;
} p[N];
int main(){
int n,m;
cin>>n>>m;
   
for(int i=0;i<n;i++)
{
windows[i].id=i+1;
cin>>windows[i].x1>>windows[i].y1>>windows[i].x2>>windows[i].y2;
}      


for (int i=0;i<m;i++)  cin>>p[i].x>>p[i].y;  


for(int j=0;j<m;j++)
{   
bool flag=false;
for(int i=n-1;i>=0;i--)
{   
  if(p[j].x>=windows[i].x1&&p[j].x<=windows[i].x2&&p[j].y>=windows[i].y1&&p[j].y<=windows[i].y2)
           {
              flag=true;
cout<<windows[i].id<<endl; 
if(i==(n-1)) break;
else
{
for(int k=i;k<n-1;k++)
          {
          struct W temp;
          temp=windows[k];
          windows[k]=windows[k+1];
          windows[k+1]=temp;
          }        
              break;
}

           } 
}
if(!flag) cout<<"IGNORED"<<endl;
}

return 0;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值