Submission #1111213
Source Code Expand
#include <bits/stdc++.h> using namespace std; const int maxRooms = 300000; const int maxStudents = 100000; int N, M; int s[maxStudents], t[maxStudents]; int start[maxRooms], stop[maxRooms]; bool canLeave[maxRooms]; vector< pair<int, int> > canLeaveSection; void init() { cin >> N >> M; for(int i = 0; i < M; i++) { cin >> s[i] >> t[i]; s[i] -= 1; t[i] -= 1; start[s[i]] += 1; stop[t[i]] += 1; } } void solve() { int current = 0; for(int i = 0; i < N; i++) { if(i == 0) current += start[i]; else current += start[i] - stop[i - 1]; if(current >= 2) canLeave[i] = true; } int sectionStart = -1, sectionEnd = -1; for(int i = 0; i < N; i++) { if(canLeave[i] && sectionStart == -1) { sectionStart = i; } if(canLeave[i] == false && sectionStart != -1) { sectionEnd = i - 1; pair<int, int> newSection; newSection.first = sectionStart; newSection.second = sectionEnd; canLeaveSection.push_back(newSection); sectionStart = sectionEnd = -1; } } if(sectionStart != -1) { pair<int, int> newSection; newSection.first = sectionStart; newSection.second = N - 1; canLeaveSection.push_back(newSection); } int sectionRightmost[maxRooms]; for(int i = 0; i < maxRooms; i++) { sectionRightmost[i] = -1; } for(auto i: canLeaveSection) { for(int k = i.first; k <= i.second; k++) { sectionRightmost[k] = i.second; } } vector<int> ans; for(int i = 0; i < M; i++) { if(sectionRightmost[s[i]] != -1 && sectionRightmost[s[i]] >= t[i]) { ans.push_back(i); } } cout << ans.size() << endl; for(int i: ans) { cout << i + 1 << endl; } } int main() { init(); solve(); }
Submission Info
Submission Time | |
---|---|
Task | B - ドキドキデート大作戦高橋君 |
User | kkty |
Language | C++14 (GCC 5.4.1) |
Score | 100 |
Code Size | 1871 Byte |
Status | AC |
Exec Time | 217 ms |
Memory | 5880 KB |
Judge Result
Set Name | Sample | Subtask1 | All | ||||||
---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 30 / 30 | 70 / 70 | ||||||
Status |
|
|
|
Set Name | Test Cases |
---|---|
Sample | subtask0_sample_01.txt, subtask0_sample_02.txt, subtask0_sample_03.txt |
Subtask1 | subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask0_sample_01.txt, subtask0_sample_02.txt, subtask0_sample_03.txt |
All | subtask0_sample_01.txt, subtask0_sample_02.txt, subtask0_sample_03.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask2_01.txt, subtask2_02.txt, subtask2_03.txt, subtask2_04.txt, subtask2_05.txt, subtask2_06.txt, subtask2_07.txt, subtask2_08.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
subtask0_sample_01.txt | AC | 2 ms | 1408 KB |
subtask0_sample_02.txt | AC | 2 ms | 1408 KB |
subtask0_sample_03.txt | AC | 2 ms | 1408 KB |
subtask1_01.txt | AC | 63 ms | 4608 KB |
subtask1_02.txt | AC | 216 ms | 5880 KB |
subtask1_03.txt | AC | 62 ms | 4472 KB |
subtask1_04.txt | AC | 142 ms | 4600 KB |
subtask1_05.txt | AC | 141 ms | 4600 KB |
subtask1_06.txt | AC | 2 ms | 1408 KB |
subtask1_07.txt | AC | 2 ms | 1408 KB |
subtask1_08.txt | AC | 2 ms | 1408 KB |
subtask1_09.txt | AC | 2 ms | 1408 KB |
subtask2_01.txt | AC | 202 ms | 3576 KB |
subtask2_02.txt | AC | 217 ms | 4344 KB |
subtask2_03.txt | AC | 2 ms | 1408 KB |
subtask2_04.txt | AC | 2 ms | 1408 KB |
subtask2_05.txt | AC | 2 ms | 1408 KB |
subtask2_06.txt | AC | 2 ms | 1408 KB |
subtask2_07.txt | AC | 2 ms | 1408 KB |
subtask2_08.txt | AC | 213 ms | 5112 KB |