Submission #112612

# Submission time Handle Problem Language Result Execution time Memory
112612 2019-05-20T20:55:50 Z BorisBarca Tenis (COI19_tenis) C++14
21 / 100
91 ms 10932 KB
/*
	$$$$$$$\                      $$\           $$$$$$$\
	$$  __$$\                     \__|          $$  __$$\
	$$ |  $$ | $$$$$$\   $$$$$$\  $$\  $$$$$$$\ $$ |  $$ | $$$$$$\   $$$$$$\   $$$$$$$\ $$$$$$\
	$$$$$$$\ |$$  __$$\ $$  __$$\ $$ |$$  _____|$$$$$$$\ | \____$$\ $$  __$$\ $$  _____|\____$$\
	$$  __$$\ $$ /  $$ |$$ |  \__|$$ |\$$$$$$\  $$  __$$\  $$$$$$$ |$$ |  \__|$$ /      $$$$$$$ |
	$$ |  $$ |$$ |  $$ |$$ |      $$ | \____$$\ $$ |  $$ |$$  __$$ |$$ |      $$ |     $$  __$$ |
	$$$$$$$  |\$$$$$$  |$$ |      $$ |$$$$$$$  |$$$$$$$  |\$$$$$$$ |$$ |      \$$$$$$$\\$$$$$$$ |
	\_______/  \______/ \__|      \__|\_______/ \_______/  \_______|\__|       \_______|\_______|
*/
#include <bits/stdc++.h>

using namespace std;

#define PB push_back
#define MP make_pair
#define INS insert
#define LB lower_bound
#define UB upper_bound
#define pii pair <int,int>
#define pll pair <long long, long long>
#define si pair<string, int>
#define is pair<int, string>
#define X first
#define Y second
#define _ << " " <<
#define sz(x) (int)x.size()
#define all(a) (a).begin(),(a).end()
#define FOR(i, a, b) for (int i = (a); i < (b); ++i)
#define FORD(i, a, b) for (int i = (a); i > (b); --i)
#define FORR(i, l, r) for (int i = (l); i <= (r); ++i)
#define FORP(i, a, b) for ((i) = (a); (i) < (b); ++i)
#define FORA(i, x) for (auto &i : x)
#define REP(i, n) FOR(i, 0, n)
#define BITS(x) __builtin_popcount(x)
#define MSET memset
#define MCPY memcpy
#define SQ(a) (a) * (a)

typedef long long ll;
typedef long double ld;
typedef vector <int> vi;
typedef vector <pii> vpi;
typedef vector <ll> vll;
typedef vector <pll> vpl;
typedef vector <double> vd;
typedef vector <ld> vld;
typedef vector<si> vsi;
typedef vector<is> vis;
typedef vector<string> vs;
//((float) t)/CLOCKS_PER_SEC

const int MOD = 1e9 + 7;
const double PI = acos(-1);
const int LOG = 19;
const int INF = 1e9 + 10;
const ll INFL = 1e18 + 10;
const int ABC = 30;
const int dx[] = {-1, 1, 0, 0};
const int dy[] = {0, 0, -1, 1};
const int dox[] = {-1, 1, 0, 0, -1, -1, 1, 1};
const int doy[] = {0, 0, -1, 1, -1, 1, -1, 1};

inline int sum(int a, int b){
  if (a + b >= MOD)
  	return a + b - MOD;
  if (a + b < 0)
  	return a + b + MOD;
  return a + b;
}

inline void add(int &a, int b){
  a = sum(a, b);
}

inline int mul(int a, int b){
  return (ll)a * (ll)b % MOD;
}

inline int sub(int a, int b){
	return (a - b + MOD) % MOD;
}

inline int pot(ll pot, int n){
	ll ret = 1;
	while (n){
		if (n & 1)
			ret = (ret * pot) % MOD;
		pot = (pot * pot) % MOD;
		n >>= 1;
	}
	return ret;
}

inline int divide(int a, int b){
	return mul(a, pot(b, MOD - 2));
}

ll lcm(ll a, ll b){
	return abs(a * b) / __gcd(a, b);
}

inline double ccw(pii A, pii B, pii C){
	return (A.X * B.Y) - (A.Y * B.X) + (B.X * C.Y) - (B.Y * C.X) + (C.X * A.Y) - (C.Y * A.X);
}

inline int CCW(pii A, pii B, pii C){
	double val = ccw(A, B, C);
	double eps = max(max(abs(A.X), abs(A.Y)), max(max(abs(B.X), abs(B.Y)), max(abs(C.X), abs(C.Y)))) / 1e9;
	if (val <= -eps)
		return -1;
	if (val >= eps)
		return 1;
	return 0;
}

void to_upper(string &x){
	REP(i, sz(x))
		x[i] = toupper(x[i]);
}

void to_lower(string &x){
	REP(i, sz(x))
		x[i] = tolower(x[i]);
}

string its(ll x){
	if (x == 0)
		return "0";
	string ret = "";
	while (x > 0){
		ret += (x % 10) + '0';
		x /= 10;
	}
	reverse(all(ret));
	return ret;
}

ll sti(string s){
	ll ret = 0;
	REP(i, sz(s)){
		ret *= 10;
		ret += (s[i] - '0');
	}
	return ret;
}

const int N = 1e5 + 10;

vi e[N], p[3];
bool bio[N], win[N];

void dfs(int node){
	if (bio[node])
		return;
	bio[node]++;
	win[node]++;
	FORA(nxt, e[node])
		dfs(nxt);
}

int main () {
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);

	int n, q; cin >> n >> q;
	REP(i, 3){
		REP(j, n){
			int x; cin >> x;
			p[i].PB(x);
		}
	}

	REP(i, 3)
		FORD(j, n - 1, 0)
			e[p[i][j]].PB(p[i][j - 1]);

	//win[p[0][0]] = win[p[1][0]] = win[p[2][0]] = 1;
	dfs(p[0][0]);
	dfs(p[1][0]);
	dfs(p[2][0]);

	REP(i, q){
		int c, x; cin >> c >> x;
		cout << (win[x] ? "DA" : "NE") << '\n';
	}

	return 0;
}

Compilation message

tenis.cpp: In function 'void dfs(int)':
tenis.cpp:156:11: warning: use of an operand of type 'bool' in 'operator++' is deprecated [-Wdeprecated]
  bio[node]++;
           ^~
tenis.cpp:157:11: warning: use of an operand of type 'bool' in 'operator++' is deprecated [-Wdeprecated]
  win[node]++;
           ^~
# Verdict Execution time Memory Grader output
1 Incorrect 4 ms 2688 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 4 ms 2688 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 4 ms 2688 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 84 ms 10932 KB Output is correct
2 Correct 79 ms 10104 KB Output is correct
3 Correct 73 ms 10100 KB Output is correct
4 Correct 89 ms 9972 KB Output is correct
5 Correct 77 ms 9972 KB Output is correct
6 Correct 91 ms 9816 KB Output is correct
7 Correct 87 ms 9972 KB Output is correct
8 Correct 77 ms 9804 KB Output is correct
9 Correct 85 ms 10092 KB Output is correct
10 Correct 71 ms 9972 KB Output is correct
11 Correct 75 ms 10352 KB Output is correct
12 Correct 78 ms 9960 KB Output is correct
13 Correct 84 ms 9840 KB Output is correct
14 Correct 83 ms 10016 KB Output is correct
15 Correct 72 ms 9972 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 4 ms 2688 KB Output isn't correct
2 Halted 0 ms 0 KB -