답안 #115251

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
115251 2019-06-06T12:01:15 Z gs14004 World of Tank (innopolis2018_final_E) C++17
77 / 100
102 ms 19688 KB
#include <bits/stdc++.h>
using namespace std;
using lint = long long;
using pi = pair<int, int>;
const int MAXN = 1000005;

vector<int> v[2];
bool vis[MAXN][2];
bool trk[MAXN][2];
int dp[MAXN][2];
int n, t;

bool findCut(){
	for(auto &i : v[0]) vis[i][0] = 1;
	for(auto &i : v[1]) vis[i][1] = 1;
	dp[0][1] = -2e9;
	for(int i=1; i<=n; i++){
		for(int j=0; j<2; j++){
			if(!vis[i-1][j] && dp[i-1][j] < min(dp[i-1][j^1], t)){
				dp[i][j] = min(dp[i-1][j^1], t) + 1;
				trk[i][j] = 1;
			}
			else{
				dp[i][j] = dp[i-1][j] + 1;
			}
			if(vis[i][j]){
				dp[i][j] -= t;
				if(dp[i][j] <= 0) dp[i][j] = -2e9;
			}
		}
	}
	return max(dp[n][0], dp[n][1]) >= 0;
}

void trace(){
	int pos = 0;
	if(dp[n][0] < 0) pos = 1;
	vector<pi> boom;
	vector<int> trans;
	for(int i=n; i; i--){
		if(vis[i][pos]){
			int where = i - dp[i][pos];
			where = max(where, 1);
			boom.emplace_back(where, pos + 1);
			dp[i][pos] += t;
		}
		if(trk[i][pos]){
			pos ^= 1;
			trans.push_back(i - 1);
		}
	}
	assert(pos == 0);
	reverse(trans.begin(), trans.end());
	reverse(boom.begin(), boom.end());
	cout << trans.size() << endl;
	for(auto &i : trans) printf("%d ", i);
	cout << endl <<  boom.size() << endl;
	for(auto &i : boom) printf("%d %d\n", i.first, i.second);
}

int main(){
	int t0, t1;
	scanf("%d %d %d %d",&n,&t0,&t1,&t);
  assert(n <= 1000000);
	v[0].resize(t0);
	v[1].resize(t1);
	for(int i=0; i<2; i++){
		for(auto &j : v[i]){
			scanf("%d",&j);
		}
	}
	if(!findCut()){
		puts("No");
		return 0;
	}
	puts("Yes");
	trace();
}

Compilation message

E.cpp: In function 'int main()':
E.cpp:63:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d %d %d %d",&n,&t0,&t1,&t);
  ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
E.cpp:69:9: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
    scanf("%d",&j);
    ~~~~~^~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 384 KB [OK, Yes] n = 20, m1 = 20, m2 = 0, t = 20
2 Correct 2 ms 384 KB [OK, Yes] n = 5000, m1 = 509, m2 = 491, t = 5000
3 Correct 2 ms 384 KB [OK, Yes] n = 5000, m1 = 764, m2 = 736, t = 5000
4 Correct 2 ms 384 KB [OK, Yes] n = 5000, m1 = 698, m2 = 802, t = 5000
5 Correct 2 ms 384 KB [OK, Yes] n = 5000, m1 = 720, m2 = 780, t = 5000
6 Correct 2 ms 384 KB [OK, Yes] n = 5000, m1 = 734, m2 = 766, t = 5000
7 Correct 2 ms 384 KB [OK, Yes] n = 5000, m1 = 997, m2 = 1003, t = 5000
8 Correct 2 ms 384 KB [OK, Yes] n = 5000, m1 = 1021, m2 = 979, t = 5000
9 Correct 2 ms 384 KB [OK, No] n = 5000, m1 = 1006, m2 = 995, t = 5000
10 Correct 2 ms 384 KB [OK, No] n = 5000, m1 = 1017, m2 = 984, t = 5000
11 Correct 2 ms 384 KB [OK, No] n = 5000, m1 = 1495, m2 = 1506, t = 5000
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 384 KB [OK, Yes] n = 20, m1 = 20, m2 = 0, t = 20
2 Correct 2 ms 384 KB [OK, Yes] n = 5000, m1 = 509, m2 = 491, t = 5000
3 Correct 2 ms 384 KB [OK, Yes] n = 5000, m1 = 764, m2 = 736, t = 5000
4 Correct 2 ms 384 KB [OK, Yes] n = 5000, m1 = 698, m2 = 802, t = 5000
5 Correct 2 ms 384 KB [OK, Yes] n = 5000, m1 = 720, m2 = 780, t = 5000
6 Correct 2 ms 384 KB [OK, Yes] n = 5000, m1 = 734, m2 = 766, t = 5000
7 Correct 2 ms 384 KB [OK, Yes] n = 5000, m1 = 997, m2 = 1003, t = 5000
8 Correct 2 ms 384 KB [OK, Yes] n = 5000, m1 = 1021, m2 = 979, t = 5000
9 Correct 2 ms 384 KB [OK, No] n = 5000, m1 = 1006, m2 = 995, t = 5000
10 Correct 2 ms 384 KB [OK, No] n = 5000, m1 = 1017, m2 = 984, t = 5000
11 Correct 2 ms 384 KB [OK, No] n = 5000, m1 = 1495, m2 = 1506, t = 5000
12 Correct 2 ms 384 KB [OK, Yes] n = 5000, m1 = 974, m2 = 1026, t = 2501
13 Correct 2 ms 384 KB [OK, Yes] n = 5000, m1 = 1022, m2 = 978, t = 2501
14 Correct 2 ms 384 KB [OK, Yes] n = 5000, m1 = 1019, m2 = 981, t = 2501
15 Correct 3 ms 384 KB [OK, Yes] n = 5000, m1 = 1298, m2 = 1367, t = 2501
16 Correct 2 ms 384 KB [OK, No] n = 5000, m1 = 1301, m2 = 1360, t = 2501
17 Correct 2 ms 384 KB [OK, Yes] n = 5000, m1 = 1320, m2 = 1315, t = 2501
18 Correct 2 ms 384 KB [OK, No] n = 5000, m1 = 1195, m2 = 1135, t = 2501
19 Correct 2 ms 384 KB [OK, No] n = 5000, m1 = 1148, m2 = 1202, t = 2501
20 Correct 2 ms 384 KB [OK, No] n = 5000, m1 = 1147, m2 = 1179, t = 2501
21 Correct 2 ms 384 KB [OK, No] n = 5000, m1 = 1163, m2 = 1146, t = 2501
22 Correct 2 ms 384 KB [OK, No] n = 5000, m1 = 1145, m2 = 1184, t = 2501
23 Correct 2 ms 384 KB [OK, No] n = 5000, m1 = 1172, m2 = 1150, t = 2501
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 384 KB [OK, Yes] n = 20, m1 = 12, m2 = 9, t = 3
2 Correct 2 ms 384 KB [OK, Yes] n = 10, m1 = 4, m2 = 2, t = 2
3 Correct 2 ms 384 KB [OK, Yes] n = 10, m1 = 6, m2 = 0, t = 2
4 Correct 2 ms 384 KB [OK, Yes] n = 10, m1 = 2, m2 = 4, t = 1
5 Correct 2 ms 384 KB [OK, No] n = 20, m1 = 4, m2 = 11, t = 2
6 Correct 2 ms 384 KB [OK, Yes] n = 20, m1 = 7, m2 = 8, t = 1
7 Correct 2 ms 384 KB [OK, Yes] n = 20, m1 = 7, m2 = 8, t = 2
8 Correct 2 ms 384 KB [OK, Yes] n = 20, m1 = 0, m2 = 10, t = 2
9 Correct 2 ms 384 KB [OK, Yes] n = 20, m1 = 4, m2 = 6, t = 2
10 Correct 2 ms 384 KB [OK, Yes] n = 20, m1 = 9, m2 = 1, t = 2
11 Correct 2 ms 384 KB [OK, Yes] n = 20, m1 = 10, m2 = 9, t = 2
12 Correct 2 ms 384 KB [OK, Yes] n = 20, m1 = 9, m2 = 10, t = 2
13 Correct 2 ms 384 KB [OK, Yes] n = 20, m1 = 0, m2 = 0, t = 3
14 Correct 2 ms 384 KB [OK, Yes] n = 20, m1 = 5, m2 = 4, t = 3
15 Correct 2 ms 384 KB [OK, Yes] n = 9, m1 = 4, m2 = 3, t = 3
16 Correct 2 ms 384 KB [OK, Yes] n = 20, m1 = 8, m2 = 8, t = 3
17 Correct 2 ms 384 KB [OK, Yes] n = 20, m1 = 9, m2 = 7, t = 3
18 Correct 2 ms 384 KB [OK, Yes] n = 20, m1 = 9, m2 = 10, t = 7
19 Correct 2 ms 384 KB [OK, Yes] n = 20, m1 = 7, m2 = 10, t = 8
20 Correct 2 ms 384 KB [OK, Yes] n = 20, m1 = 13, m2 = 10, t = 4
21 Correct 2 ms 384 KB [OK, Yes] n = 20, m1 = 9, m2 = 9, t = 8
22 Correct 2 ms 384 KB [OK, Yes] n = 20, m1 = 10, m2 = 11, t = 3
23 Correct 2 ms 384 KB [OK, Yes] n = 20, m1 = 11, m2 = 11, t = 3
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 384 KB [OK, Yes] n = 20, m1 = 20, m2 = 0, t = 20
2 Correct 2 ms 384 KB [OK, Yes] n = 5000, m1 = 509, m2 = 491, t = 5000
3 Correct 2 ms 384 KB [OK, Yes] n = 5000, m1 = 764, m2 = 736, t = 5000
4 Correct 2 ms 384 KB [OK, Yes] n = 5000, m1 = 698, m2 = 802, t = 5000
5 Correct 2 ms 384 KB [OK, Yes] n = 5000, m1 = 720, m2 = 780, t = 5000
6 Correct 2 ms 384 KB [OK, Yes] n = 5000, m1 = 734, m2 = 766, t = 5000
7 Correct 2 ms 384 KB [OK, Yes] n = 5000, m1 = 997, m2 = 1003, t = 5000
8 Correct 2 ms 384 KB [OK, Yes] n = 5000, m1 = 1021, m2 = 979, t = 5000
9 Correct 2 ms 384 KB [OK, No] n = 5000, m1 = 1006, m2 = 995, t = 5000
10 Correct 2 ms 384 KB [OK, No] n = 5000, m1 = 1017, m2 = 984, t = 5000
11 Correct 2 ms 384 KB [OK, No] n = 5000, m1 = 1495, m2 = 1506, t = 5000
12 Correct 2 ms 384 KB [OK, Yes] n = 5000, m1 = 974, m2 = 1026, t = 2501
13 Correct 2 ms 384 KB [OK, Yes] n = 5000, m1 = 1022, m2 = 978, t = 2501
14 Correct 2 ms 384 KB [OK, Yes] n = 5000, m1 = 1019, m2 = 981, t = 2501
15 Correct 3 ms 384 KB [OK, Yes] n = 5000, m1 = 1298, m2 = 1367, t = 2501
16 Correct 2 ms 384 KB [OK, No] n = 5000, m1 = 1301, m2 = 1360, t = 2501
17 Correct 2 ms 384 KB [OK, Yes] n = 5000, m1 = 1320, m2 = 1315, t = 2501
18 Correct 2 ms 384 KB [OK, No] n = 5000, m1 = 1195, m2 = 1135, t = 2501
19 Correct 2 ms 384 KB [OK, No] n = 5000, m1 = 1148, m2 = 1202, t = 2501
20 Correct 2 ms 384 KB [OK, No] n = 5000, m1 = 1147, m2 = 1179, t = 2501
21 Correct 2 ms 384 KB [OK, No] n = 5000, m1 = 1163, m2 = 1146, t = 2501
22 Correct 2 ms 384 KB [OK, No] n = 5000, m1 = 1145, m2 = 1184, t = 2501
23 Correct 2 ms 384 KB [OK, No] n = 5000, m1 = 1172, m2 = 1150, t = 2501
24 Correct 2 ms 384 KB [OK, Yes] n = 500, m1 = 197, m2 = 53, t = 2
25 Correct 2 ms 384 KB [OK, Yes] n = 500, m1 = 189, m2 = 61, t = 3
26 Correct 2 ms 384 KB [OK, No] n = 500, m1 = 66, m2 = 184, t = 4
27 Correct 3 ms 384 KB [OK, Yes] n = 500, m1 = 248, m2 = 252, t = 1
28 Correct 2 ms 384 KB [OK, Yes] n = 500, m1 = 248, m2 = 252, t = 1
29 Correct 2 ms 384 KB [OK, Yes] n = 500, m1 = 205, m2 = 295, t = 1
30 Correct 64 ms 15980 KB [OK, Yes] n = 1000000, m1 = 183472, m2 = 66528, t = 7
31 Correct 58 ms 15700 KB [OK, Yes] n = 1000000, m1 = 206211, m2 = 43789, t = 6
32 Correct 53 ms 15224 KB [OK, Yes] n = 1000000, m1 = 229445, m2 = 20555, t = 7
33 Correct 80 ms 17528 KB [OK, No] n = 1000000, m1 = 261335, m2 = 238665, t = 2
34 Correct 95 ms 19572 KB [OK, Yes] n = 1000000, m1 = 374819, m2 = 125181, t = 3
35 Correct 91 ms 18924 KB [OK, Yes] n = 1000000, m1 = 88376, m2 = 411624, t = 3
36 Correct 2 ms 384 KB [OK, Yes] n = 500, m1 = 125, m2 = 125, t = 2
37 Correct 102 ms 19688 KB [OK, Yes] n = 1000000, m1 = 250000, m2 = 250000, t = 2
38 Correct 52 ms 15344 KB [OK, Yes] n = 1000000, m1 = 94957, m2 = 94938, t = 12
39 Correct 52 ms 13780 KB [OK, Yes] n = 1000000, m1 = 94972, m2 = 95007, t = 10
40 Correct 23 ms 12616 KB [OK, Yes] n = 1000000, m1 = 14064, m2 = 13936, t = 200
41 Correct 24 ms 12664 KB [OK, Yes] n = 1000000, m1 = 15990, m2 = 16010, t = 139
42 Correct 33 ms 13172 KB [OK, Yes] n = 1000000, m1 = 32291, m2 = 32404, t = 34
43 Correct 51 ms 15032 KB [OK, Yes] n = 1000000, m1 = 88230, m2 = 88238, t = 13
44 Correct 36 ms 13556 KB [OK, Yes] n = 1000000, m1 = 44550, m2 = 44400, t = 34
45 Correct 33 ms 13184 KB [OK, Yes] n = 1000000, m1 = 31778, m2 = 31772, t = 44
46 Correct 52 ms 15228 KB [OK, No] n = 1000000, m1 = 147142, m2 = 147242, t = 10
47 Correct 2 ms 384 KB [OK, Yes] n = 1000, m1 = 416, m2 = 417, t = 77
48 Correct 2 ms 384 KB [OK, Yes] n = 1000, m1 = 412, m2 = 414, t = 111
49 Correct 2 ms 384 KB [OK, Yes] n = 1000, m1 = 422, m2 = 423, t = 62
50 Correct 2 ms 384 KB [OK, Yes] n = 800, m1 = 279, m2 = 270, t = 33
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 384 KB [OK, Yes] n = 20, m1 = 20, m2 = 0, t = 20
2 Correct 2 ms 384 KB [OK, Yes] n = 5000, m1 = 509, m2 = 491, t = 5000
3 Correct 2 ms 384 KB [OK, Yes] n = 5000, m1 = 764, m2 = 736, t = 5000
4 Correct 2 ms 384 KB [OK, Yes] n = 5000, m1 = 698, m2 = 802, t = 5000
5 Correct 2 ms 384 KB [OK, Yes] n = 5000, m1 = 720, m2 = 780, t = 5000
6 Correct 2 ms 384 KB [OK, Yes] n = 5000, m1 = 734, m2 = 766, t = 5000
7 Correct 2 ms 384 KB [OK, Yes] n = 5000, m1 = 997, m2 = 1003, t = 5000
8 Correct 2 ms 384 KB [OK, Yes] n = 5000, m1 = 1021, m2 = 979, t = 5000
9 Correct 2 ms 384 KB [OK, No] n = 5000, m1 = 1006, m2 = 995, t = 5000
10 Correct 2 ms 384 KB [OK, No] n = 5000, m1 = 1017, m2 = 984, t = 5000
11 Correct 2 ms 384 KB [OK, No] n = 5000, m1 = 1495, m2 = 1506, t = 5000
12 Correct 2 ms 384 KB [OK, Yes] n = 5000, m1 = 974, m2 = 1026, t = 2501
13 Correct 2 ms 384 KB [OK, Yes] n = 5000, m1 = 1022, m2 = 978, t = 2501
14 Correct 2 ms 384 KB [OK, Yes] n = 5000, m1 = 1019, m2 = 981, t = 2501
15 Correct 3 ms 384 KB [OK, Yes] n = 5000, m1 = 1298, m2 = 1367, t = 2501
16 Correct 2 ms 384 KB [OK, No] n = 5000, m1 = 1301, m2 = 1360, t = 2501
17 Correct 2 ms 384 KB [OK, Yes] n = 5000, m1 = 1320, m2 = 1315, t = 2501
18 Correct 2 ms 384 KB [OK, No] n = 5000, m1 = 1195, m2 = 1135, t = 2501
19 Correct 2 ms 384 KB [OK, No] n = 5000, m1 = 1148, m2 = 1202, t = 2501
20 Correct 2 ms 384 KB [OK, No] n = 5000, m1 = 1147, m2 = 1179, t = 2501
21 Correct 2 ms 384 KB [OK, No] n = 5000, m1 = 1163, m2 = 1146, t = 2501
22 Correct 2 ms 384 KB [OK, No] n = 5000, m1 = 1145, m2 = 1184, t = 2501
23 Correct 2 ms 384 KB [OK, No] n = 5000, m1 = 1172, m2 = 1150, t = 2501
24 Correct 2 ms 384 KB [OK, Yes] n = 20, m1 = 12, m2 = 9, t = 3
25 Correct 2 ms 384 KB [OK, Yes] n = 10, m1 = 4, m2 = 2, t = 2
26 Correct 2 ms 384 KB [OK, Yes] n = 10, m1 = 6, m2 = 0, t = 2
27 Correct 2 ms 384 KB [OK, Yes] n = 10, m1 = 2, m2 = 4, t = 1
28 Correct 2 ms 384 KB [OK, No] n = 20, m1 = 4, m2 = 11, t = 2
29 Correct 2 ms 384 KB [OK, Yes] n = 20, m1 = 7, m2 = 8, t = 1
30 Correct 2 ms 384 KB [OK, Yes] n = 20, m1 = 7, m2 = 8, t = 2
31 Correct 2 ms 384 KB [OK, Yes] n = 20, m1 = 0, m2 = 10, t = 2
32 Correct 2 ms 384 KB [OK, Yes] n = 20, m1 = 4, m2 = 6, t = 2
33 Correct 2 ms 384 KB [OK, Yes] n = 20, m1 = 9, m2 = 1, t = 2
34 Correct 2 ms 384 KB [OK, Yes] n = 20, m1 = 10, m2 = 9, t = 2
35 Correct 2 ms 384 KB [OK, Yes] n = 20, m1 = 9, m2 = 10, t = 2
36 Correct 2 ms 384 KB [OK, Yes] n = 20, m1 = 0, m2 = 0, t = 3
37 Correct 2 ms 384 KB [OK, Yes] n = 20, m1 = 5, m2 = 4, t = 3
38 Correct 2 ms 384 KB [OK, Yes] n = 9, m1 = 4, m2 = 3, t = 3
39 Correct 2 ms 384 KB [OK, Yes] n = 20, m1 = 8, m2 = 8, t = 3
40 Correct 2 ms 384 KB [OK, Yes] n = 20, m1 = 9, m2 = 7, t = 3
41 Correct 2 ms 384 KB [OK, Yes] n = 20, m1 = 9, m2 = 10, t = 7
42 Correct 2 ms 384 KB [OK, Yes] n = 20, m1 = 7, m2 = 10, t = 8
43 Correct 2 ms 384 KB [OK, Yes] n = 20, m1 = 13, m2 = 10, t = 4
44 Correct 2 ms 384 KB [OK, Yes] n = 20, m1 = 9, m2 = 9, t = 8
45 Correct 2 ms 384 KB [OK, Yes] n = 20, m1 = 10, m2 = 11, t = 3
46 Correct 2 ms 384 KB [OK, Yes] n = 20, m1 = 11, m2 = 11, t = 3
47 Correct 2 ms 384 KB [OK, Yes] n = 500, m1 = 197, m2 = 53, t = 2
48 Correct 2 ms 384 KB [OK, Yes] n = 500, m1 = 189, m2 = 61, t = 3
49 Correct 2 ms 384 KB [OK, No] n = 500, m1 = 66, m2 = 184, t = 4
50 Correct 3 ms 384 KB [OK, Yes] n = 500, m1 = 248, m2 = 252, t = 1
51 Correct 2 ms 384 KB [OK, Yes] n = 500, m1 = 248, m2 = 252, t = 1
52 Correct 2 ms 384 KB [OK, Yes] n = 500, m1 = 205, m2 = 295, t = 1
53 Correct 64 ms 15980 KB [OK, Yes] n = 1000000, m1 = 183472, m2 = 66528, t = 7
54 Correct 58 ms 15700 KB [OK, Yes] n = 1000000, m1 = 206211, m2 = 43789, t = 6
55 Correct 53 ms 15224 KB [OK, Yes] n = 1000000, m1 = 229445, m2 = 20555, t = 7
56 Correct 80 ms 17528 KB [OK, No] n = 1000000, m1 = 261335, m2 = 238665, t = 2
57 Correct 95 ms 19572 KB [OK, Yes] n = 1000000, m1 = 374819, m2 = 125181, t = 3
58 Correct 91 ms 18924 KB [OK, Yes] n = 1000000, m1 = 88376, m2 = 411624, t = 3
59 Correct 2 ms 384 KB [OK, Yes] n = 500, m1 = 125, m2 = 125, t = 2
60 Correct 102 ms 19688 KB [OK, Yes] n = 1000000, m1 = 250000, m2 = 250000, t = 2
61 Correct 52 ms 15344 KB [OK, Yes] n = 1000000, m1 = 94957, m2 = 94938, t = 12
62 Correct 52 ms 13780 KB [OK, Yes] n = 1000000, m1 = 94972, m2 = 95007, t = 10
63 Correct 23 ms 12616 KB [OK, Yes] n = 1000000, m1 = 14064, m2 = 13936, t = 200
64 Correct 24 ms 12664 KB [OK, Yes] n = 1000000, m1 = 15990, m2 = 16010, t = 139
65 Correct 33 ms 13172 KB [OK, Yes] n = 1000000, m1 = 32291, m2 = 32404, t = 34
66 Correct 51 ms 15032 KB [OK, Yes] n = 1000000, m1 = 88230, m2 = 88238, t = 13
67 Correct 36 ms 13556 KB [OK, Yes] n = 1000000, m1 = 44550, m2 = 44400, t = 34
68 Correct 33 ms 13184 KB [OK, Yes] n = 1000000, m1 = 31778, m2 = 31772, t = 44
69 Correct 52 ms 15228 KB [OK, No] n = 1000000, m1 = 147142, m2 = 147242, t = 10
70 Correct 2 ms 384 KB [OK, Yes] n = 1000, m1 = 416, m2 = 417, t = 77
71 Correct 2 ms 384 KB [OK, Yes] n = 1000, m1 = 412, m2 = 414, t = 111
72 Correct 2 ms 384 KB [OK, Yes] n = 1000, m1 = 422, m2 = 423, t = 62
73 Correct 2 ms 384 KB [OK, Yes] n = 800, m1 = 279, m2 = 270, t = 33
74 Runtime error 3 ms 512 KB Execution killed with signal 11 (could be triggered by violating memory limits)
75 Halted 0 ms 0 KB -