1014 Waiting in Line
更多...
|
int | main (istream &cin, ostream &cout) |
|
| TEST (a1014, case1) |
|
◆ main()
int pat::a::a1014::main |
( |
istream & |
cin, |
|
|
ostream & |
cout |
|
) |
| |
在文件 pat.cpp 第 4307 行定义.
4309 cin >> n >> m >> k >> q;
4310 vector<int> t(k + 1);
4311 vector end_time(k + 1, -1);
4313 for(
int i = 1; i <= k; i++) {
4316 vector<queue<int>>
qs(n);
4318 for(
int i = 0; i < n && i < k; i++) {
4321 for(
int i = 0; i < n * m && i < k; i++, next++) {
4322 qs[i % n].push(i + 1);
4324 int current_time = 0;
4325 while(next <= k && current_time < 540) {
4327 for(
int i = 0; i < n; i++) {
4332 minimum = min(minimum, rest[i]);
4337 if(current_time + minimum >= 540) {
4340 current_time += minimum;
4341 for(
int i = 0; i < n; i++) {
4346 end_time[
qs[i].front()] = current_time;
4348 rest[i] =
qs[i].empty() ? -1 : t[
qs[i].front()];
4353 for(
int i = 0; i < n; i++) {
4354 minimum = min(minimum,
static_cast<int>(
qs[i].size()));
4356 for(
int i = 0; i < n && next <= k; i++) {
4357 if(
qs[i].size() == minimum) {
4366 for(
int i = 0; i < n; i++) {
4367 int queue_time = current_time;
4368 while(!
qs[i].empty() && queue_time < 540) {
4370 queue_time += rest[i];
4373 queue_time += t[
qs[i].front()];
4375 end_time[
qs[i].front()] = queue_time;
4379 for(
int i = 0; i < q; i++) {
4382 const int time = end_time[query];
4384 cout <<
"Sorry" << endl;
4386 const int h = time / 60;
4387 const int m = time % 60;
4388 cout << setw(2) <<
right << setfill(
'0') << h + 8
4390 << setw(2) <<
right << setfill(
'0') << m
void qs(vector< int > &vec, int l, int r)
引用了 acwing::acwing785::qs() , 以及 acwing::acwing1929::right.
被这些函数引用 TEST().
◆ TEST()
pat::a::a1014::TEST |
( |
a1014 |
, |
|
|
case1 |
|
|
) |
| |
在文件 pat_test.cpp 第 2059 行定义.
2060 istringstream in(
"2 2 7 5\n"
2063 auto out = ostringstream();
int main(int argc, char **argv)
引用了 main().