Untitled

mail@pastecode.io avatar
unknown
plain_text
7 months ago
4.4 kB
4
Indexable
Never
//#define MAX_N (10001)
//#define MAX_STR_LEN (13)
//#define MAX_T 3001
// 
//#include<algorithm>
//#include<string>
//#include<vector>
//#include<set>
//#include<unordered_map>
//using namespace std;
// 
// 
//struct MEETING{
//    int date;
//    int start; 
//    int end;
//}pool[MAX_N];
//int np;
// 
//unordered_map<string, int> teamName;
//unordered_map<string, int> memberName;
//int curday;
// 
//struct MEMBER{
//    //set<int> midLst[6];
//    vector<int> midLst[6];
//    void init(){
//        for(int i=0;i<6;i++)
//            midLst[i].clear();
//    }
//};
//MEMBER mems[MAX_N];
//int nm;
// 
//struct TEAM{
//    vector<int> memLst;
//    int mid;
//    void init(){
//        memLst.clear();
//        mid = 0;
//    }
//} teams[MAX_T];
//int nt;
// 
//void init(int N, char mName[][MAX_STR_LEN])
//{
//    curday = np = 1;
//    nm = nt = 1;
//    teamName.clear();
//    memberName.clear();
//    for(int i=0;i<N; i++){
//        mems[nm].init();
//        memberName[mName[i]] = nm++;
//    }
//    for(int i=0;i<MAX_T;i++)
//        teams[i].init();
//}
// 
//void createTeam(char mTeamName[], int M, char mName[][MAX_STR_LEN])
//{
//    for(int i=0;i<M;i++){
//        int mN = memberName[mName[i]];
//        teams[nt].memLst.push_back(mN);
//    }
//    teamName[mTeamName] = nt++;
//}
// 
//int updateMeeting(int tid, int day, int start, int duaration){
//    pool[np].date = day;
//    pool[np].start = start;
//    pool[np].end = start + duaration - 1;
//    teams[tid].mid = np;
//    int d = day%7;
//    for(auto m:teams[tid].memLst){
//        //mems[m].midLst[d].insert(np);
//        mems[m].midLst[d].push_back(np);
//    }
//    np++;
//    int w = day/7 + 1;
//    int h = 9 + start/60;
//    int m = start%60;
//    int res = w*100000 + d*10000 + h*100 + m;
//    return res;
//}
// 
////struct cmp{
////  bool operator()(int id1, int id2){
////      if(pool[id1].start != pool[id2].start)
////          return pool[id1].start < pool[id2].start;
////      else return pool[id1].end > pool[id2].end;
////  }
////};
// 
// 
//bool cmp(int id1, int id2){
//    if(pool[id1].start != pool[id2].start)
//        return pool[id1].start < pool[id2].start;
//    else return pool[id1].end > pool[id2].end;
//}
// 
//int bookMeeting(char mTeamName[], int mMinutes)
//{
//    int res = 0;
//    int t = teamName[mTeamName];
//    //cancel exist meeting
//    int mid = teams[t].mid;
//    if(mid){
//        for(auto m:teams[t].memLst){
//            int day = pool[mid].date%7;
//            int tmp = mems[m].midLst[day].size();
//            for(int i=0; i<tmp; i++){
//                if(mid == mems[m].midLst[day][i]){
//                    mems[m].midLst[day][i] = mems[m].midLst[day][tmp-1] ;
//                    mems[m].midLst[day].pop_back();
//                }
//                /*if(mems[m].midLst[day].count(mid))
//                    mems[m].midLst[day].erase(mid);*/
//            }
//        }
//        teams[t].mid = 0;
//    }
// 
//    for(int i = curday; i< curday+7;i++){
//        int day = i%7;
//        if(day==6 || !day)
//            continue;
//        vector<int> meeting;
//        //set<int, cmp> meeting;
//        for(auto mem:teams[t].memLst){
//            for(auto meet:mems[mem].midLst[day]){
//                meeting.push_back(meet);
//                //meeting.insert(meet);
//            }
//        }
//        sort(meeting.begin(), meeting.end(), cmp);
//        int start_pos = 0;
//        //at start point have no meeting
//        if(!meeting.size()){
//            res = updateMeeting(t, i, start_pos, mMinutes);
//            return res;
//        }
// 
//        for(auto mid:meeting){
//            if(pool[mid].start - start_pos >= mMinutes){
//                res = updateMeeting(t, i, start_pos, mMinutes);
//                return res;
//            }
//            if(pool[mid].end >= start_pos){
//                start_pos = pool[mid].end  + 1;
//            }
//        }
// 
//        //outside exist meeting
//        if(540 - start_pos + 1 >= mMinutes){
//            res = updateMeeting(t, i, start_pos, mMinutes);
//            return res;
//        }
//    }
// 
//    return res;
//}
// 
//void timeElapse(int mDays)
//{
//    curday += mDays;
//}