Atenţie! Aceasta este o versiune veche a paginii, scrisă la 2020-05-29 17:31:26.
Revizia anterioară   Revizia următoare  
#include <iostream>
#include <vector>
#include <string>

int query(std::string A, std::string B);
void answer(std::vector<int> perm);

// De aici in sus nu ar trebui sa modifici nimic

std::vector<int> find_permutation(int N) {
	std::vector<int> perm;
	for(int i = 1; i <= N; ++i)
		perm.push_back(i);
	
	return perm;
}

// De aici in jos nu ar trebui sa modifici nimic

int query(std::string A, std::string B) {
	int val;
	std::cout << "? " << A << " " << B << std::endl;

	std::cin >> val;
	if(val == -1)
		exit(0);
	return val;
}

void answer(std::vector<int> perm) {
	std::cout << "! ";
	for(auto it: perm)
		std::cout << it << " ";
	std::cout << std::endl;
}

int main() {
	int T;

	std::cin >> T;
	
	while(T--) {
		int N;
		std::cin >> N;
		std::vector<int> perm = find_permutation(N);
		answer(perm);
	}

	return 0;
}