답안 #208718

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
208718 2020-03-12T05:17:25 Z E869120 어르신 집배원 (BOI14_postmen) C++14
38 / 100
500 ms 36720 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];

int idx[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;
	for (int i = 1; i <= N; i++) idx[i] = -1;
	while (num > 0) {
		while (X[cnt].empty()) { cnt++; }

		int cx = cnt, pre = -1; vector<int> v;
		for (int t = 0; t <= N; t++) {
			v.push_back(cx); idx[cx] = t;
			auto itr = X[cx].begin();
			if ((*itr) == pre) itr++;
			int nex = (*itr);
			if (idx[nex] != -1) {
				vector<int> v2;
				for (int i = idx[nex]; i < v.size(); i++) v2.push_back(v[i]);
				for (int i : v) idx[i] = -1;
				v = v2;
				break;
			}
			else { pre = cx; cx = nex; }
		}
		ans.push_back(v);
		for (int i = 0; i < v.size(); i++) {
			int s1 = v[i], s2 = v[(i + 1) % v.size()];
			X[s1].erase(s2);
			X[s2].erase(s1); num--;
		}
	}

	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:34:30: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for (int i = idx[nex]; i < v.size(); i++) v2.push_back(v[i]);
                            ~~^~~~~~~~~~
postmen.cpp:42:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for (int i = 0; i < v.size(); i++) {
                   ~~^~~~~~~~~~
postmen.cpp:49:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (int i = 0; i < ans.size(); i++) {
                  ~~^~~~~~~~~~~~
postmen.cpp:50: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:13: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:15: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]);
   ~~~~~^~~~~~~~~~~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 37 ms 24928 KB Output is correct
2 Correct 23 ms 24960 KB Output is correct
3 Correct 22 ms 24960 KB Output is correct
4 Correct 25 ms 25344 KB Output is correct
5 Correct 20 ms 25088 KB Output is correct
6 Correct 23 ms 25472 KB Output is correct
7 Correct 44 ms 26720 KB Output is correct
8 Correct 20 ms 25192 KB Output is correct
9 Correct 202 ms 36212 KB Output is correct
10 Correct 21 ms 25344 KB Output is correct
11 Correct 20 ms 25344 KB Output is correct
12 Correct 211 ms 36332 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 21 ms 24960 KB Output is correct
2 Correct 18 ms 24960 KB Output is correct
3 Correct 19 ms 24960 KB Output is correct
4 Correct 21 ms 25344 KB Output is correct
5 Correct 21 ms 25088 KB Output is correct
6 Correct 22 ms 25472 KB Output is correct
7 Correct 41 ms 26744 KB Output is correct
8 Correct 25 ms 25216 KB Output is correct
9 Correct 270 ms 36280 KB Output is correct
10 Correct 20 ms 25344 KB Output is correct
11 Correct 28 ms 25344 KB Output is correct
12 Correct 223 ms 36348 KB Output is correct
13 Correct 144 ms 36720 KB Output is correct
14 Execution timed out 1097 ms 36028 KB Time limit exceeded
15 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 18 ms 24960 KB Output is correct
2 Correct 19 ms 25000 KB Output is correct
3 Correct 20 ms 24960 KB Output is correct
4 Correct 22 ms 25344 KB Output is correct
5 Correct 20 ms 25088 KB Output is correct
6 Correct 27 ms 25520 KB Output is correct
7 Correct 39 ms 26752 KB Output is correct
8 Correct 20 ms 25216 KB Output is correct
9 Correct 208 ms 36244 KB Output is correct
10 Correct 23 ms 25344 KB Output is correct
11 Correct 24 ms 25344 KB Output is correct
12 Correct 216 ms 36384 KB Output is correct
13 Correct 149 ms 36696 KB Output is correct
14 Execution timed out 1094 ms 35948 KB Time limit exceeded
15 Halted 0 ms 0 KB -