Submission #117586

# Submission time Handle Problem Language Result Execution time Memory
117586 2019-06-16T17:27:44 Z Bruteforceman Tenis (COI19_tenis) C++11
39 / 100
88 ms 5624 KB
#include "bits/stdc++.h"
using namespace std;
int N, Q;
int a[4][100010];
int p[4][100010];

int opt() {
	int mx1 = 0;
	int mx2 = 0;
	for(int i = 1; i <= N; i++) {
		mx1 = max(mx1, a[2][i]);
		mx2 = max(mx2, a[3][i]);
		if(mx1 == mx2 && mx1 == i) {
			return i;
		}
	}
	return N + 1;
}

void update(int q, int x, int y) {
	if(q == 1) {
		update(2, x, y);
		update(3, x, y);
		swap(p[1][x], p[1][y]);
	} else {
		int f = p[q][x];
		int g = p[q][y];
		swap(a[q][f], a[q][g]);
		swap(p[q][x], p[q][y]);
	}
	// cout << endl;
	// for(int i = 2; i <= 3; i++) {
	// 	for(int j = 1; j <= N; j++) {
	// 		cout << a[i][j] << ' ';
	// 	}
	// 	cout << endl;
	// }
}

int main(int argc, char const *argv[])
{
	scanf("%d %d", &N, &Q);
	for(int i = 1; i <= 3; i++) {
		for(int j = 1; j <= N; j++) {
			scanf("%d", &a[i][j]);
			p[i][a[i][j]] = j;
		}
	}
	for(int i = 2; i <= 3; i++) {
		for(int j = 1; j <= N; j++) {
			a[i][j] = p[1][a[i][j]];
			p[i][a[i][j]] = j;
			// cout << a[i][j] << ' ';
		}
		// cout << endl;
	}

	int first = opt();
	for(int i = 1; i <= Q; i++) {
		int c;
		scanf("%d", &c);
		if(c == 1) {
			int x;
			scanf("%d", &x);
			if(p[1][x] <= first) printf("DA\n");
			else printf("NE\n");
		} else {
			int f, x, y;
			scanf("%d %d %d", &f, &x, &y);
			update(f, p[1][x], p[1][y]);
			first = opt();
		}
	}	
	return 0;
}

Compilation message

tenis.cpp: In function 'int main(int, const char**)':
tenis.cpp:42:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d %d", &N, &Q);
  ~~~~~^~~~~~~~~~~~~~~~~
tenis.cpp:45:9: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
    scanf("%d", &a[i][j]);
    ~~~~~^~~~~~~~~~~~~~~~
tenis.cpp:61:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d", &c);
   ~~~~~^~~~~~~~~~
tenis.cpp:64:9: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
    scanf("%d", &x);
    ~~~~~^~~~~~~~~~
tenis.cpp:69:9: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
    scanf("%d %d %d", &f, &x, &y);
    ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 2 ms 384 KB Output is correct
2 Correct 2 ms 384 KB Output is correct
3 Correct 2 ms 384 KB Output is correct
4 Correct 2 ms 384 KB Output is correct
5 Correct 2 ms 384 KB Output is correct
6 Correct 2 ms 384 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 384 KB Output is correct
2 Correct 2 ms 384 KB Output is correct
3 Correct 2 ms 384 KB Output is correct
4 Correct 2 ms 384 KB Output is correct
5 Correct 2 ms 384 KB Output is correct
6 Correct 2 ms 384 KB Output is correct
7 Correct 2 ms 384 KB Output is correct
8 Correct 2 ms 384 KB Output is correct
9 Correct 2 ms 384 KB Output is correct
10 Correct 2 ms 384 KB Output is correct
11 Correct 2 ms 384 KB Output is correct
12 Correct 2 ms 384 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 384 KB Output is correct
2 Correct 2 ms 384 KB Output is correct
3 Correct 2 ms 384 KB Output is correct
4 Correct 2 ms 384 KB Output is correct
5 Correct 2 ms 384 KB Output is correct
6 Correct 2 ms 384 KB Output is correct
7 Correct 2 ms 384 KB Output is correct
8 Correct 2 ms 384 KB Output is correct
9 Correct 2 ms 384 KB Output is correct
10 Correct 2 ms 384 KB Output is correct
11 Correct 2 ms 384 KB Output is correct
12 Correct 2 ms 384 KB Output is correct
13 Correct 44 ms 2668 KB Output is correct
14 Correct 47 ms 4476 KB Output is correct
15 Correct 42 ms 4472 KB Output is correct
16 Correct 43 ms 4600 KB Output is correct
17 Correct 42 ms 4472 KB Output is correct
18 Incorrect 41 ms 4480 KB Output isn't correct
19 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 66 ms 3576 KB Output is correct
2 Correct 63 ms 5596 KB Output is correct
3 Correct 66 ms 5496 KB Output is correct
4 Correct 65 ms 5464 KB Output is correct
5 Correct 65 ms 5496 KB Output is correct
6 Correct 66 ms 5496 KB Output is correct
7 Correct 65 ms 5496 KB Output is correct
8 Correct 65 ms 5496 KB Output is correct
9 Correct 69 ms 5624 KB Output is correct
10 Correct 67 ms 5368 KB Output is correct
11 Correct 67 ms 5496 KB Output is correct
12 Correct 69 ms 5440 KB Output is correct
13 Correct 68 ms 5468 KB Output is correct
14 Correct 88 ms 5536 KB Output is correct
15 Correct 68 ms 5496 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 384 KB Output is correct
2 Correct 2 ms 384 KB Output is correct
3 Correct 2 ms 384 KB Output is correct
4 Correct 2 ms 384 KB Output is correct
5 Correct 2 ms 384 KB Output is correct
6 Correct 2 ms 384 KB Output is correct
7 Correct 2 ms 384 KB Output is correct
8 Correct 2 ms 384 KB Output is correct
9 Correct 2 ms 384 KB Output is correct
10 Correct 2 ms 384 KB Output is correct
11 Correct 2 ms 384 KB Output is correct
12 Correct 2 ms 384 KB Output is correct
13 Correct 44 ms 2668 KB Output is correct
14 Correct 47 ms 4476 KB Output is correct
15 Correct 42 ms 4472 KB Output is correct
16 Correct 43 ms 4600 KB Output is correct
17 Correct 42 ms 4472 KB Output is correct
18 Incorrect 41 ms 4480 KB Output isn't correct
19 Halted 0 ms 0 KB -