Submission #205737
Source Code Expand
#include<iostream> #include<vector> #include<string> #include<sstream> #include<iomanip> struct RainTime { std::vector<int> time; RainTime(int start = 0, int end = 0) { time.assign(2, 0); time[0] = start; time[1] = end; }; friend std::ostream& operator<<(std::ostream& os, const RainTime& t); }; std::ostream& operator<<(std::ostream& os, const RainTime& t) { os << std::setfill('0') << std::setw(4) <<std::right<< t.time[0] << "-"; os << std::setfill('0') << std::setw(4) <<std::right<< t.time[1]; return os; } RainTime transformTime(std::string str) { RainTime time; std::vector<std::string> str_time(2); str_time[0] = str.substr(0 ,4); str_time[1] = str.substr(5, 4); for(unsigned int i = 0; i < 2; ++i) { int tmp = 0; std::stringstream ss; ss << str_time[i]; ss >> tmp; int hh = tmp / 100; int mm = tmp % 100; time.time[i] = (hh * 60 + mm); } int tmp = 0; tmp = time.time[0] % 10; if (tmp < 5) time.time[0] -= tmp; else if(tmp > 5) time.time[0] -= tmp - 5; tmp = time.time[1] % 10; if(tmp != 0) { if (tmp < 5) time.time[1] += 5 - tmp; else if(tmp > 5) time.time[1] += 10 - tmp; } return time; }//split_time int main(void) { int num = 0; std::cin >> num; std::vector<RainTime> rain_time(num); for(unsigned int i = 0; i < num; ++i) { std::string str = ""; std::cin >> str; rain_time[i] = transformTime(str); /// //std::cout << rain_time[i] << std::endl; } std::vector<int> imosu(1442,0);//24*60=1440 for(unsigned int i = 0; i < num; ++i) { imosu[rain_time[i].time[0]] += 1; imosu[(rain_time[i].time[1])+1] += -1; /// //std::cout<<rain_time[i].time[0]/5; //std::cout<<rain_time[i].time[1]/5+1<<std::endl; } /// /* for(unsigned int i = 0; i < 290; ++i) { if(i%50==0)std::cout<<std::endl; std::cout<<imosu[i]; } std::cout<<std::endl; */ std::vector<RainTime> rain; std::vector<int> imosu_plus(1442,0); bool sw = false; //falseはrain_start,trueはrain_end int n = 0; imosu_plus[0] = imosu[0]; if(imosu[0]>0) { rain.push_back(RainTime(0)); sw =true; } for(unsigned int i = 1; i < 1442; ++i) { imosu_plus[i] = imosu[i] + imosu_plus[i-1]; /// //if(i%50==0)std::cout<<std::endl; //std::cout<< imosu_plus[i]; if(!sw) { if(imosu_plus[i] > 0) { rain.push_back(RainTime(i)); n = rain.size()-1; /// //std::cout<<":"<<rain[n]<<std::endl; sw = true; } }else { if(imosu_plus[i] == 0) { rain[n].time[1] = (i-1); sw = false; } } } for(unsigned int i = 0; i < rain.size(); ++i) { int tmp = rain[i].time[0]; /// //std::cout<<tmp<<" "; rain[i].time[0] = (tmp/60)*100+tmp%60; tmp = rain[i].time[1]; /// //std::cout<<tmp<<std::endl; rain[i].time[1] = (tmp/60)*100+tmp%60; std::cout << rain[i] << std::endl; } return 0; }//main
Submission Info
Submission Time | |
---|---|
Task | D - 感雨時刻の整理 |
User | yokobutton |
Language | C++ (G++ 4.6.4) |
Score | 100 |
Code Size | 3108 Byte |
Status | AC |
Exec Time | 177 ms |
Memory | 2720 KB |
Judge Result
Set Name | all | ||
---|---|---|---|
Score / Max Score | 100 / 100 | ||
Status |
|
Set Name | Test Cases |
---|---|
all | 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, cho_cho_chokudai.txt, chokudai_ga_cho.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt, test_31.txt, test_32.txt, test_33.txt, test_34.txt, test_35.txt, test_36.txt, test_37.txt, test_38.txt, test_39.txt, test_40.txt, test_41.txt, test_42.txt, test_43.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
00_sample_01.txt | AC | 87 ms | 936 KB |
00_sample_02.txt | AC | 27 ms | 1008 KB |
00_sample_03.txt | AC | 25 ms | 984 KB |
cho_cho_chokudai.txt | AC | 143 ms | 2720 KB |
chokudai_ga_cho.txt | AC | 153 ms | 2600 KB |
test_01.txt | AC | 26 ms | 992 KB |
test_02.txt | AC | 25 ms | 1056 KB |
test_03.txt | AC | 25 ms | 1004 KB |
test_04.txt | AC | 26 ms | 1000 KB |
test_05.txt | AC | 26 ms | 984 KB |
test_06.txt | AC | 25 ms | 1056 KB |
test_07.txt | AC | 25 ms | 992 KB |
test_08.txt | AC | 25 ms | 1008 KB |
test_09.txt | AC | 27 ms | 1016 KB |
test_10.txt | AC | 27 ms | 1056 KB |
test_11.txt | AC | 27 ms | 1008 KB |
test_12.txt | AC | 27 ms | 1016 KB |
test_13.txt | AC | 26 ms | 1008 KB |
test_14.txt | AC | 27 ms | 1012 KB |
test_15.txt | AC | 28 ms | 1136 KB |
test_16.txt | AC | 27 ms | 1004 KB |
test_17.txt | AC | 27 ms | 1008 KB |
test_18.txt | AC | 26 ms | 1140 KB |
test_19.txt | AC | 27 ms | 1060 KB |
test_20.txt | AC | 27 ms | 1008 KB |
test_21.txt | AC | 142 ms | 2668 KB |
test_22.txt | AC | 144 ms | 2592 KB |
test_23.txt | AC | 141 ms | 2680 KB |
test_24.txt | AC | 143 ms | 2668 KB |
test_25.txt | AC | 141 ms | 2664 KB |
test_26.txt | AC | 145 ms | 2664 KB |
test_27.txt | AC | 142 ms | 2668 KB |
test_28.txt | AC | 143 ms | 2604 KB |
test_29.txt | AC | 25 ms | 980 KB |
test_30.txt | AC | 25 ms | 992 KB |
test_31.txt | AC | 42 ms | 1264 KB |
test_32.txt | AC | 25 ms | 980 KB |
test_33.txt | AC | 103 ms | 2092 KB |
test_34.txt | AC | 25 ms | 1048 KB |
test_35.txt | AC | 26 ms | 1060 KB |
test_36.txt | AC | 177 ms | 2664 KB |
test_37.txt | AC | 145 ms | 2652 KB |
test_38.txt | AC | 148 ms | 2668 KB |
test_39.txt | AC | 143 ms | 2680 KB |
test_40.txt | AC | 145 ms | 2672 KB |
test_41.txt | AC | 144 ms | 2672 KB |
test_42.txt | AC | 145 ms | 2672 KB |
test_43.txt | AC | 143 ms | 2668 KB |