Submission #208719

# Submission time Handle Problem Language Result Execution time Memory
208719 2020-03-12T05:28:04 Z E869120 Senior Postmen (BOI14_postmen) C++14
55 / 100
500 ms 78476 KB
#include <iostream>
#include <vector>
#include <set>
using namespace std;
#pragma warning (disable: 4996)

int N, M, A[1 << 19], B[1 << 19];
set<int> X[1 << 19];
bool used[1 << 19];

int main() {
	scanf("%d%d", &N, &M);
	for (int i = 1; i <= M; i++) {
		scanf("%d%d", &A[i], &B[i]);
		X[A[i]].insert(B[i]);
		X[B[i]].insert(A[i]);
	}

	int num = M, cnt = 1;
	vector<vector<int>> ans;
	while (num > 0) {
		while (X[cnt].empty()) { cnt++; }

		int cx = cnt; vector<int> vec;
		while (true) {
			vec.push_back(cx);
			auto itr = X[cx].begin();
			int nex = (*itr);
			X[cx].erase(nex);
			X[nex].erase(cx); num--;
			if (nex == cnt) break;
			cx = nex;
		}
		vec.push_back(cnt);
		for (int i : vec) used[i] = false;

		vector<int> v1;
		for (int i = 0; i < vec.size(); i++) {
			if (used[vec[i]] == true) {
				vector<int> ret;
				while (true) {
					int cp = v1[v1.size() - 1];
					ret.push_back(cp); used[cp] = false;
					v1.pop_back();
					if (cp == vec[i]) break;
				}
				ans.push_back(ret);
			}
			used[vec[i]] = true;
			v1.push_back(vec[i]);
		}
	}

	for (int i = 0; i < ans.size(); i++) {
		for (int j = 0; j < ans[i].size(); j++) { if (j) printf(" "); printf("%d", ans[i][j]); }
		printf("\n");
	}
	return 0;
}

Compilation message

postmen.cpp:5:0: warning: ignoring #pragma warning  [-Wunknown-pragmas]
 #pragma warning (disable: 4996)
 
postmen.cpp: In function 'int main()':
postmen.cpp:38:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for (int i = 0; i < vec.size(); i++) {
                   ~~^~~~~~~~~~~~
postmen.cpp:54:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (int i = 0; i < ans.size(); i++) {
                  ~~^~~~~~~~~~~~
postmen.cpp:55:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for (int j = 0; j < ans[i].size(); j++) { if (j) printf(" "); printf("%d", ans[i][j]); }
                   ~~^~~~~~~~~~~~~~~
postmen.cpp:12:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d%d", &N, &M);
  ~~~~~^~~~~~~~~~~~~~~~
postmen.cpp:14:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d%d", &A[i], &B[i]);
   ~~~~~^~~~~~~~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 21 ms 24996 KB Output is correct
2 Correct 22 ms 24924 KB Output is correct
3 Correct 21 ms 24960 KB Output is correct
4 Correct 26 ms 25344 KB Output is correct
5 Correct 27 ms 25120 KB Output is correct
6 Correct 25 ms 25472 KB Output is correct
7 Correct 37 ms 26700 KB Output is correct
8 Correct 21 ms 25216 KB Output is correct
9 Correct 208 ms 36208 KB Output is correct
10 Correct 22 ms 25344 KB Output is correct
11 Correct 20 ms 25344 KB Output is correct
12 Correct 189 ms 36304 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 46 ms 24960 KB Output is correct
2 Correct 18 ms 24960 KB Output is correct
3 Correct 20 ms 24960 KB Output is correct
4 Correct 21 ms 25344 KB Output is correct
5 Correct 19 ms 25088 KB Output is correct
6 Correct 27 ms 25448 KB Output is correct
7 Correct 37 ms 26752 KB Output is correct
8 Correct 21 ms 25216 KB Output is correct
9 Correct 224 ms 36184 KB Output is correct
10 Correct 21 ms 25344 KB Output is correct
11 Correct 24 ms 25344 KB Output is correct
12 Correct 207 ms 36308 KB Output is correct
13 Correct 143 ms 35828 KB Output is correct
14 Correct 146 ms 35944 KB Output is correct
15 Correct 183 ms 36876 KB Output is correct
16 Correct 129 ms 35828 KB Output is correct
17 Correct 168 ms 37052 KB Output is correct
18 Correct 169 ms 36664 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 18 ms 24960 KB Output is correct
2 Correct 20 ms 24960 KB Output is correct
3 Correct 22 ms 24936 KB Output is correct
4 Correct 22 ms 25344 KB Output is correct
5 Correct 21 ms 25136 KB Output is correct
6 Correct 24 ms 25472 KB Output is correct
7 Correct 37 ms 26736 KB Output is correct
8 Correct 21 ms 25216 KB Output is correct
9 Correct 222 ms 36188 KB Output is correct
10 Correct 21 ms 25320 KB Output is correct
11 Correct 21 ms 25344 KB Output is correct
12 Correct 210 ms 36300 KB Output is correct
13 Correct 130 ms 35828 KB Output is correct
14 Correct 157 ms 35956 KB Output is correct
15 Correct 169 ms 36868 KB Output is correct
16 Correct 127 ms 35828 KB Output is correct
17 Correct 170 ms 36952 KB Output is correct
18 Correct 167 ms 36592 KB Output is correct
19 Execution timed out 629 ms 78476 KB Time limit exceeded
20 Halted 0 ms 0 KB -