Untitled
unknown
plain_text
2 years ago
4.4 kB
8
Indexable
//#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; //}
Editor is loading...