1. 程式人生 > >(ccf模擬)201709-2公共鑰匙盒

(ccf模擬)201709-2公共鑰匙盒

blog markdown mem cpp mat turn emp AC back

#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公共鑰匙盒