(ccf模拟)201709-2公共钥匙盒

Posted waoyu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(ccf模拟)201709-2公共钥匙盒相关的知识,希望对你有一定的参考价值。

#include <iostream>
#include<string>
#include <algorithm>
#include<sstream>
#include<memory.h>
#include<set>
#include<queue>
#include<vector>
#include<cmath>
 
 struct time
 {
     int time;
     int key;
     int re;    
 };
 bool cmp(time a,time b)
 {
    if(a.time==b.time)
    {
        if(a.re==b.re)
        {
            return a.key<b.key;
        }
        else
        {
            return a.re<b.re;
        }       
    }
    else
    {
        return a.time<b.time;
    }
    
 }
 using namespace std;
 int keys[1001];
 vector<time> v;
 int main()
 {
    
    int n,k;
    cin>>n>>k;
    for(int i=1;i<=n;i++)
    {
        keys[i]=i;
    }
    for(int i=1;i<=k;i++)
    {
        int tk,begin,dur;
        cin>>tk>>begin>>dur;
        time temp;
        temp.time=begin;
        temp.re=1;
        temp.key=tk;
        v.push_back(temp); 
        temp.time=begin+dur;
        temp.re=0;
        temp.key=tk;
        v.push_back(temp);
    }
    sort(v.begin(),v.end(),cmp);
    for(vector<time>::iterator it=v.begin();it!=v.end();++it)
    {
        //cout<<(*it).time<<" ";
        if((*it).re==1)
        {
             for(int i=1;i<=n;i++)
            {
                if(keys[i]==(*it).key)
                {
                    keys[i]=0;
                    break;
                }
            }   
        }
        else
        {
            for(int i=1;i<=n;i++)
            {
                if(keys[i]==0)
                {
                    keys[i]=(*it).key;
                    break;
                }
            }   
        }
    
    }
    for(int i=1;i<=n;i++)
    {
        cout<<keys[i]<<" ";
    }
    
 }

以上是关于(ccf模拟)201709-2公共钥匙盒的主要内容,如果未能解决你的问题,请参考以下文章

ccf——201709-2公共钥匙盒

CCF - 201709-2 - 公共钥匙盒

CCF 201709-2 公共钥匙盒 100分

公共钥匙盒 ccf

201709-2公共钥匙盒

201709-2 公共钥匙盒 Java