Submission #791631

# Submission time Handle Problem Language Result Execution time Memory
791631 2023-07-24T08:22:30 Z ono_de206 Prize (CEOI22_prize) C++14
Compilation error
0 ms 0 KB
#include<bits/stdc++.h>
using namespace std;

#define fast ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define in insert
#define all(x) x.begin(),x.end()
#define pb push_back
#define eb emplace_back
#define ff first
#define ss second

// #define int long long
 
typedef long long ll;
typedef vector<int> vi;
typedef set<int> si;
typedef multiset<int> msi;
typedef pair<int, int> pii;
typedef vector<pii> vpii;

template<typename T, typename U>
ostream & operator << (ostream &out, const pair<T, U> &c) {
	out << c.first << ' ' << c.second;
    return out;
}

template<typename T>
ostream & operator << (ostream &out, vector<T> &v) {
	const int sz = v.size();
	for (int i = 0; i < sz; i++) {
		if (i) out << ' ';
		out << v[i];
	}
    return out;
}

template<typename T>
istream & operator >> (istream &in, vector<T> &v) {
	for (T &x : v) in >> x;
    return in;
}


template<typename T>
void mxx(T &a, T b){if(b > a) a = b;}
template<typename T>
void mnn(T &a, T b){if(b < a) a = b;}

const int mxn = 1010;
pair<int , int> P[2][mxn];
int dis[2][mxn][mxn], lca[2][mxn][mxn];

struct tree {
	int n, lg, cnt;
	vector<int> dep;
	vector<vector<int>> jump, g;
	bool did;

	tree(int _n) : n(_n) {
		dep.resize(n + 1);
		adj.resize(n + 1);
		did = 0;
		lg = cnt = 0;
		while((1 << lg) < n) lg++;
		jump.resize(n + 1, vector<int>(lg));
	}

	void build(int to = 1, fr = 0) {
		dep[to] = dep[fr] + 1;
		jump[to][0] = fr;
		for(int x : g[to]) {
			if(x == fr) continue;
			build(x, to);
		}
	}

	void add(int x, int y) {
		g[x].pb(y);
		g[y].pb(x);
		cnt++;
		if(cnt == n - 1) build();
	}

	void buildLCA() {
		if(did) return;
		did = 1;
		for(int j = 1; j < lg; j++) {
			for(int i = 1; i <= n; i++) {
				jump[i][j] = jump[jump[i][j - 1]][j - 1];
			}
		}
	}

	int lca(int x, int y) {
		buildLCA();
		if(dep[x] < dep[y]) swap(x, y);
		int dff = dep[x] - dep[y];
		for(int i = 0; i < lg; i++) {
			if((dff >> i) & 1) x = jump[x][i];
		}
		if(x == y) return x;
		for(int i = lg - 1; i >= 0; i--) {
			if(jump[x][i] != jump[y][i]) {
				x = jump[x][i];
				y = jump[y][i];
			}
		}
		return jump[x][0];
	}

	bool isOn(int x, int y, int z) {
		int p = lca(x, y);
		if(dep[p] > dep[z]) return 0;
		return (lca(x, z) == z || lca(y, z) == z);
	}
};

void go() {
	int n, k, q, t;
	tree t1(n), t2(n);
	for(int i = 1, x; i <= n; i++) {
		cin >> x;
		if(x != -1) t1.add(x, i);
	}
	for(int i = 1, x; i <= n; i++) {
		cin >> x;
		if(x != -1) t2.add(x, i);
	}

	for(int i = 1; i <= k; i++) {
		cout << i << " \n"[i == k];
	}
	cout.flush();

	for(int i = 1; i < k; i++) {
		cout << "? " << i << ' ' << i + 1 << '\n';
	}
	cout << "!\n";
	cout.flush();

	for(int i = 2; i <= k; i++) {
		cin >> P[0][i] >> P[1][i];
	}

	for(int i = 1; i <= k; i++) {
		for(int j = i; j <= k; j++) {
			lca[0][i][j] = t1.lca(i, j);
			lca[1][i][j] = t2.lca(i, j);
		}
	}

	for(int i = 1; i <= k; i++) {
		for(int p = 0; p < 2; p++) {
			pair<int, int> dp{0, 0};
			int ls = i;
			for(int j = i + 1; j <= k; j++) {
				if(lca[p][i][j] == lca[p][ls][j]) dp = {P[p][j].ff - dp.ss + dp.ff, P[p][j].ss};
				else if(lca[p][i][j] == lca[p][i][ls]) dp.ss = P[p][j].ss - P[p][j].ff;
				else continue;
				ls = j;
				dis[p][i][j] = dp.ff + dp.ss;
			}
		}
	}

	for(int i = k; i >= 1; i--) {
		for(int p = 0; p < 2; p++) {
			pair<int, int> dp{0, 0};
			int ls = i;
			for(int j = i - 1; j >= 1; j--) {
				if(lca[p][i][j] == lca[p][ls][j]) dp = {P[p][j].ss - dp.ss + dp.ff, P[p][j + 1].ff};
				else if(lca[p][i][j] == lca[p][i][ls]) dp.ss = P[p][j + 1].ff - P[p][j + 1].ss;
				else continue;
				ls = j;
				dis[p][j][i] = dp.ff + dp.ss;
			}
		}
	}

	vector<pair<int, int>> Q;
	for(int i = 1, x, y; i <= t; i++) {
		cin >> x >> y;
		if(x > y) swap(x, y);
		Q.eb(x, y);
	}
	for(auto it : Q) {
		cout << dis[0][it.ff][it.ss] << ' ' << dis[1][it.ff][it.ss] << '\n';
		cout.flush();
	}
}
 
signed main() {
	// #ifndef ONO
	// freopen("file.in", "r", stdin);
	// freopen("file.out", "w", stdout);
	// #endif
	// fast;
	int t = 1;
	// cin >> t;
	while(t--) {
		go();
	}
	return 0;
}

Compilation message

Main.cpp:68:25: error: 'fr' has not been declared
   68 |  void build(int to = 1, fr = 0) {
      |                         ^~
Main.cpp: In constructor 'tree::tree(int)':
Main.cpp:61:3: error: 'adj' was not declared in this scope; did you mean 'add'?
   61 |   adj.resize(n + 1);
      |   ^~~
      |   add
Main.cpp: In member function 'void tree::build(int, int)':
Main.cpp:69:17: error: 'fr' was not declared in this scope; did you mean 'ff'?
   69 |   dep[to] = dep[fr] + 1;
      |                 ^~
      |                 ff
Main.cpp: In function 'void go()':
Main.cpp:142:7: error: no match for 'operator>>' (operand types are 'std::istream' {aka 'std::basic_istream<char>'} and 'std::pair<int, int>')
  142 |   cin >> P[0][i] >> P[1][i];
      |   ~~~ ^~ ~~~~~~~
      |   |            |
      |   |            std::pair<int, int>
      |   std::istream {aka std::basic_istream<char>}
In file included from /usr/include/c++/10/sstream:38,
                 from /usr/include/c++/10/complex:45,
                 from /usr/include/c++/10/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:54,
                 from Main.cpp:1:
/usr/include/c++/10/istream:120:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(std::basic_istream<_CharT, _Traits>::__istream_type& (*)(std::basic_istream<_CharT, _Traits>::__istream_type&)) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]'
  120 |       operator>>(__istream_type& (*__pf)(__istream_type&))
      |       ^~~~~~~~
/usr/include/c++/10/istream:120:36: note:   no known conversion for argument 1 from 'std::pair<int, int>' to 'std::basic_istream<char>::__istream_type& (*)(std::basic_istream<char>::__istream_type&)' {aka 'std::basic_istream<char>& (*)(std::basic_istream<char>&)'}
  120 |       operator>>(__istream_type& (*__pf)(__istream_type&))
      |                  ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/10/istream:124:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(std::basic_istream<_CharT, _Traits>::__ios_type& (*)(std::basic_istream<_CharT, _Traits>::__ios_type&)) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>; std::basic_istream<_CharT, _Traits>::__ios_type = std::basic_ios<char>]'
  124 |       operator>>(__ios_type& (*__pf)(__ios_type&))
      |       ^~~~~~~~
/usr/include/c++/10/istream:124:32: note:   no known conversion for argument 1 from 'std::pair<int, int>' to 'std::basic_istream<char>::__ios_type& (*)(std::basic_istream<char>::__ios_type&)' {aka 'std::basic_ios<char>& (*)(std::basic_ios<char>&)'}
  124 |       operator>>(__ios_type& (*__pf)(__ios_type&))
      |                  ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
/usr/include/c++/10/istream:131:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(std::ios_base& (*)(std::ios_base&)) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]'
  131 |       operator>>(ios_base& (*__pf)(ios_base&))
      |       ^~~~~~~~
/usr/include/c++/10/istream:131:30: note:   no known conversion for argument 1 from 'std::pair<int, int>' to 'std::ios_base& (*)(std::ios_base&)'
  131 |       operator>>(ios_base& (*__pf)(ios_base&))
      |                  ~~~~~~~~~~~~^~~~~~~~~~~~~~~~
/usr/include/c++/10/istream:168:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(bool&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]'
  168 |       operator>>(bool& __n)
      |       ^~~~~~~~
/usr/include/c++/10/istream:168:24: note:   no known conversion for argument 1 from 'std::pair<int, int>' to 'bool&'
  168 |       operator>>(bool& __n)
      |                  ~~~~~~^~~
/usr/include/c++/10/istream:172:7: note: candidate: 'std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(short int&) [with _CharT = char; _Traits = std::char_traits<char>]'
  172 |       operator>>(short& __n);
      |       ^~~~~~~~
/usr/include/c++/10/istream:172:25: note:   no known conversion for argument 1 from 'std::pair<int, int>' to 'short int&'
  172 |       operator>>(short& __n);
      |                  ~~~~~~~^~~
/usr/include/c++/10/istream:175:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(short unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]'
  175 |       operator>>(unsigned short& __n)
      |       ^~~~~~~~
/usr/include/c++/10/istream:175:34: note:   no known conversion for argument 1 from 'std::pair<int, int>' to 'short unsigned int&'
  175 |       operator>>(unsigned short& __n)
      |                  ~~~~~~~~~~~~~~~~^~~
/usr/include/c++/10/istream:179:7: note: candidate: 'std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(int&) [with _CharT = char; _Traits = std::char_traits<char>]'
  179 |       operator>>(int& __n);
      |       ^~~~~~~~
/usr/include/c++/10/istream:179:23: note:   no known conversion for argument 1 from 'std::pair<int, int>' to 'int&'
  179 |       operator>>(int& __n);
      |                  ~~~~~^~~
/usr/include/c++/10/istream:182:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]'
  182 |       operator>>(unsigned int& __n)
      |       ^~~~~~~~
/usr/include/c++/10/istream:182:32: note:   no known conversion for argument 1 from 'std::pair<int, int>' to 'unsigned int&'
  182 |       operator>>(unsigned int& __n)
      |                  ~~~~~~~~~~~~~~^~~
/usr/include/c++/10/istream:186:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]'
  186 |       operator>>(long& __n)
      |       ^~~~~~~~
/usr/include/c++/10/istream:186:24: note:   no known conversion for argument 1 from 'std::pair<int, int>' to 'long int&'
  186 |       operator>>(long& __n)
      |                  ~~~~~~^~~
/usr/include/c++/10/istream:190:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]'
  190 |       operator>>(unsigned long& __n)
      |       ^~~~~~~~
/usr/include/c++/10/istream:190:33: note:   no known conversion for argument 1 from 'std::pair<int, int>' to 'long unsigned int&'
  190 |       operator>>(unsigned long& __n)
      |                  ~~~~~~~~~~~~~~~^~~
/usr/include/c++/10/istream:195:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long long int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]'
  195 |       operator>>(long long& __n)
      |       ^~~~~~~~
/usr/include/c++/10/istream:195:29: note:   no known conversion for argument 1 from 'std::pair<int, int>' to 'long long int&'
  195 |       operator>>(long long& __n)
      |                  ~~~~~~~~~~~^~~
/usr/include/c++/10/istream:199:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long long unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]'
  199 |       operator>>(unsigned long long& __n)
      |       ^~~~~~~~
/usr/include/c++/10/istream:199:38: note:   no known conversion for argument 1 from 'std::pair<int, int>' to 'long long unsigned int&'
  199 |       operator>>(unsigned long long& __n)
      |                  ~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/10/istream:214:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(float&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]'
  214 |       operator>>(float& __f)
      |       ^~~~~~~~
/usr/include/c++/10/istream:214:25: note:   no known conversion for argument 1 from 'std::pair<int, int>' to 'float&'
  214 |       operator>>(float& __f)
      |                  ~~~~~~~^~~
/usr/include/c++/10/istream:218:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(double&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]'
  218 |       operator>>(double& __f)
      |       ^~~~~~~~
/usr/include/c++/10/istream:218:26: note:   no known conversion for argument 1 from 'std::pair<int, int>' to 'double&'
  218 |       operator>>(double& __f)
      |                  ~~~~~~~~^~~
/usr/include/c++/10/istream:222:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long double&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]'
  222 |       operator>>(long double& __f)
      |       ^~~~~~~~
/usr/include/c++/10/istream:222:31: note:   no known conversion for argument 1 from 'std::pair<int, int>' to 'long double&'
  222 |       operator>>(long double& __f)
      |                  ~~~~~~~~~~~~~^~~
/usr/include/c++/10/istream:235:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(void*&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]'
  235 |       operator>>(void*& __p)
      |       ^~~~~~~~
/usr/include/c++/10/istream:235:25: note:   no known conversion for argument 1 from 'std::pair<int, int>' to 'void*&'
  235 |       operator>>(void*& __p)
      |                  ~~~~~~~^~~
/usr/include/c++/10/istream:259:7: note: candidate: 'std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(std::basic_istream<_CharT, _Traits>::__streambuf_type*) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__streambuf_type = std::basic_streambuf<char>]'
  259 |       operator>>(__streambuf_type* __sb);
      |       ^~~~~~~~
/usr/include/c++/10/istream:259:36: note:   no known conversion for argument 1 from 'std::pair<int, int>' to 'std::basic_istream<char>::__streambuf_type*' {aka 'std::basic_streambuf<char>*'}
  259 |       operator>>(__streambuf_type* __sb);
      |                  ~~~~~~~~~~~~~~~~~~^~~~
Main.cpp:38:11: note: candidate: 'template<class T> std::istream& operator>>(std::istream&, std::vector<_Tp>&)'
   38 | istream & operator >> (istream &in, vector<T> &v) {
      |           ^~~~~~~~
Main.cpp:38:11: note:   template argument deduction/substitution failed:
Main.cpp:142:16: note:   'std::pair<int, int>' is not derived from 'std::vector<_Tp>'
  142 |   cin >> P[0][i] >> P[1][i];
      |                ^
In file included from /usr/include/c++/10/string:56,
                 from /usr/include/c++/10/bits/locale_classes.h:40,
                 from /usr/include/c++/10/bits/ios_base.h:41,
                 from /usr/include/c++/10/ios:42,
                 from /usr/include/c++/10/istream:38,
                 from /usr/include/c++/10/sstream:38,
                 from /usr/include/c++/10/complex:45,
                 from /usr/include/c++/10/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:54,
                 from Main.cpp:1:
/usr/include/c++/10/bits/basic_string.tcc:1476:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> std::basic_istream<_CharT, _Traits>& std::operator>>(std::basic_istream<_CharT, _Traits>&, std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&)'
 1476 |     operator>>(basic_istream<_CharT, _Traits>& __in,
      |     ^~~~~~~~
/usr/include/c++/10/bits/basic_string.tcc:1476:5: note:   template argument deduction/substitution failed:
Main.cpp:142:16: note:   'std::pair<int, int>' is not derived from 'std::__cxx11::basic_string<_CharT, _Traits, _Alloc>'
  142 |   cin >> P[0][i] >> P[1][i];
      |                ^
In file included from /usr/include/c++/10/istream:991,
                 from /usr/include/c++/10/sstream:38,
                 from /usr/include/c++/10/complex:45,
                 from /usr/include/c++/10/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:54,
                 from Main.cpp:1:
/usr/include/c++/10/bits/istream.tcc:931:5: note: candidate: 'template<class _CharT, class _Traits> std::basic_istream<_CharT, _Traits>& std::operator>>(std::basic_istream<_CharT, _Traits>&, _CharT&)'
  931 |     operator>>(basic_istream<_CharT, _Traits>& __in, _CharT& __c)
      |     ^~~~~~~~
/usr/include/c++/10/bits/istream.tcc:931:5: note:   template argument deduction/substitution failed:
Main.cpp:142:16: note:   deduced conflicting types for parameter '_CharT' ('char' and 'std::pair<int, int>')
  142 |   cin >> P[0][i] >> P[1][i];
      |                ^
In file included from /usr/include/c++/10/sstream:38,
                 from /usr/include/c++/10/complex:45,
                 from /usr/include/c++/10/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:54,
                 from Main.cpp:1:
/usr/include/c++/10/istream:756:5: note: candidate: 'template<class _Traits> std::basic_istream<char, _Traits>& std::operator>>(std::basic_istream<char, _Traits>&, unsigned char&)'
  756 |     operator>>(basic_istream<char, _Traits>& __in, unsigned char& __c)
      |     ^~~~~~~~
/usr/include/c++/10/istream:756:5: note:   template argument deduction/substitution failed:
Main.cpp:142:16: note:   cannot convert 'P[0][i]' (type 'std::pair<int, int>') to type 'unsigned char&'
  142 |   cin >> P[0][i] >> P[1][i];
      |          ~~~~~~^
In file included from /usr/include/c++/10/sstream:38,
                 from /usr/include/c++/10/complex:45,
                 from /usr/include/c++/10/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:54,
                 from Main.cpp:1:
/usr/include/c++/10/istream:761:5: note: candidate: 'template<class _Traits> std::basic_istream<char, _Traits>& std::operator>>(std::basic_istream<char, _Traits>&, signed char&)'
  761 |     operator>>(basic_istream<char, _Traits>& __in, signed char& __c)
      |     ^~~~~~~~
/usr/include/c++/10/istream:761:5: note:   template argument deduction/substitution failed:
Main.cpp:142:16: note:   cannot convert 'P[0][i]' (type 'std::pair<int, int>') to type 'signed char&'
  142 |   cin >> P[0][i] >> P[1][i];
      |          ~~~~~~^
In file included from /usr/include/c++/10/istream:991,
                 from /usr/include/c++/10/sstream:38,
                 from /usr/include/c++/10/complex:45,
                 from /usr/include/c++/10/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:54,
                 from Main.cpp:1:
/usr/include/c++/10/bits/istream.tcc:963:5: note: candidate: 'template<class _CharT2, class _Traits2> std::basic_istream<_CharT, _Traits>& std::operator>>(std::basic_istream<_CharT, _Traits>&, _CharT2*)'
  963 |     operator>>(basic_istream<_CharT, _Traits>& __in, _CharT* __s)
      |     ^~~~~~~~
/usr/include/c++/10/bits/istream.tcc:963:5: note:   template argument deduction/substitution failed:
Main.cpp:142:16: note:   mismatched types '_CharT2*' and 'std::pair<int, int>'
  142 |   cin >> P[0][i] >> P[1][i];
      |                ^
In file included from /usr/include/c++/10/sstream:38,
                 from /usr/include/c++/10/complex:45,
                 from /usr/include/c++/10/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:54,
                 from Main.cpp:1:
/usr/include/c++/10/istream:803:5: note: candidate: 'template<class _Traits> std::basic_istream<char, _Traits>& std::operator>>(std::basic_istream<char, _Traits>&, unsigned char*)'
  803 |     operator>>(basic_istream<char, _Traits>& __in, unsigned char* __s)
      |     ^~~~~~~~
/usr/include/c++/10/istream:803:5: note:   template argument deduction/substitution failed:
Main.cpp:142:16: note:   cannot convert 'P[0][i]' (type 'std::pair<int, int>') to type 'unsigned char*'
  142 |   cin >> P[0][i] >> P[1][i];
      |          ~~~~~~^
In file included from /usr/include/c++/10/sstream:38,
                 from /usr/include/c++/10/complex:45,
                 from /usr/include/c++/10/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:54,
                 from Main.cpp:1:
/usr/include/c++/10/istream:808:5: note: candidate: 'template<class _Traits> std::basic_istream<char, _Traits>& std::operator>>(std::basic_istream<char, _Traits>&, signed char*)'
  808 |     operator>>(basic_istream<char, _Traits>& __in, signed char* __s)
      |     ^~~~~~~~
/usr/include/c++/10/istream:808:5: note:   template argument deduction/substitution failed:
Main.cpp:142:16: note:   cannot convert 'P[0][i]' (type 'std::pair<int, int>') to type 'signed char*'
  142 |   cin >> P[0][i] >> P[1][i];
      |          ~~~~~~^
In file included from /usr/include/c++/10/sstream:38,
                 from /usr/include/c++/10/complex:45,
                 from /usr/include/c++/10/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:54,
                 from Main.cpp:1:
/usr/include/c++/10/istream:980:5: note: candidate: 'template<class _Istream, class _Tp> typename std::enable_if<std::__and_<std::__not_<std::is_lvalue_reference<_Tp> >, std::__is_convertible_to_basic_istream<_Istream>, std::__is_extractable<typename std::__is_convertible_to_basic_istream<_Tp>::__istream_type, _Tp&&, void> >::value, typename std::__is_convertible_to_basic_istream<_Tp>::__istream_type>::type std::operator>>(_Istream&&, _Tp&&)'
  980 |     operator>>(_Istream&& __is, _Tp&& __x)
      |     ^~~~~~~~
/usr/include/c++/10/istream:980:5: note:   template argument deduction/substitution failed:
/usr/include/c++/10/istream: In substitution of 'template<class _Istream, class _Tp> typename std::enable_if<std