【北邮OJ】277. 内存分配-网研14-计算机二14

总结:
1。自定义cmp函数
适用于:
①结构体多重排序
②改变排序规则(如倒序)
2。注意可用位的设置

#include <stdio.h>
#include <iostream>
#include <algorithm>
using namespace std;

struct memblock{
    int mem;
    int avail;
};

bool cmp(memblock a,memblock b){
    if(a.mem != b.mem) return a.mem<b.mem;
}

int main(){
    int t,T;
    cin>>T;
    for(t=1;t<=T;t++){
        int n,N;
        cin>>N;
        memblock str[100];
        int j;
        for(j=0;j<=99;j++)
            str[j].avail=0;
        for(n=0;n<=N-1;n++)
            cin>>str[n].mem;
        sort(str,str+N,cmp);
        int m,M;
        cin>>M;  
        for(m=1;m<=M;m++){
            int request;
            cin>>request;
            int i;
            for(i=0;i<=N-1;i++){
                if((request <= str[i].mem) && (str[i].avail==0)){
                    cout<<str[i].mem;
                    str[i].avail=1;
                    if(m != M)
                        cout<<" ";
                    break;
                }
            }
            if(i==N){
                cout<<"NULL";
                if(m != M)
                    cout<<" ";
            }              
        }
        cout<<endl;
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/u012372720/article/details/64949193