multimap的使用
99000 0
00:01:30 11:58:30 00:00:00
/* *********************************************** Author :CKboss Created Time :2015年07月10日 星期五 08时55分44秒 File Name :HDOJ5276.cpp ************************************************ */ #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <string> #include <cmath> #include <cstdlib> #include <vector> #include <queue> #include <set> #include <map> using namespace std; struct Time { int hh,mm,ss; }; multimap<int,Time> mt; /// every 10 second /// s: 720000 m: 12000 h: 1000 const int DS=720000; const int DM=12000; const int DH=1000; const int MOD=360*12000; int degS=-DS,degM=-DM,degH=-DH; int ADD() { degS=(degS+DS)%MOD; degM=(degM+DM)%MOD; degH=(degH+DH)%MOD; int dur=abs(degM-degH); if(dur>MOD/2) dur=MOD-dur; return dur; } void init() { for(int h=0;h<=11;h++) { for(int m=0;m<=59;m++) { for(int s=0;s<60;s+=10) { int t=ADD(); mt.insert(make_pair(t,(Time){h,m,s})); } } } } int main() { //freopen("in.txt","r",stdin); //freopen("out.txt","w",stdout); init(); int x; while(scanf("%d",&x)!=EOF) { multimap<int,Time>::iterator it; it=mt.find(x); int cnt=mt.count(x); for(int i=0;i<cnt;i++,it++) { Time time = it->second; printf("%02d:%02d:%02d\n",time.hh,time.mm,time.ss); } } return 0; }
HDOJ 5276 YJC tricks time multimap
原文:http://www.cnblogs.com/mengfanrong/p/5154134.html