Nu aveti permisiuni pentru a descarca fisierul grader_test7.ok
Diferente pentru template_shopping intre reviziile #2 si #15
Nu exista diferente intre titluri.
Diferente intre continut:
h1. Template C++
==code(cpp) | #include <iostream> #include <vector> #include <string>
using namespace std; int query(string A, string B); void answer(vector<int> perm);
// Afla raspunsul la interactiune daca ar trimite sirurile de caractere A si B de marime N // A si B trebuie indexate de la 0 si sa fie de marime cel putin N int query(std::string A, std::string B);
// De aici in sus nu ar trebui sa modifici nimic
// Functia trebuie sa returneze permutarea ceruta // Permutarea aici in implementare va fi indexata de la 0
std::vector<int> find_permutation(int N) {
vector<int> perm;for(int i = 1; i <= N; ++i)perm.push_back(i);return perm;
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(string A, string B) { int val; cout << "? " << A << " " << B << endl;
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; }
cin >> val; if(val == -1) exit(0); return val;
int main() { int T; std::cin >> T; while(T--) { int N; std::cin >> N; if(N == -1) exit(0); std::vector<int> perm = find_permutation(N); std::cout << "! "; for(auto it: perm) std::cout << it << " "; std::cout << std::endl; } return 0; } == h1. Template C ==code(c) | #include <stdio.h> #include <stdlib.h> // Afla raspunsul la interactiune daca ar trimite sirurile de caractere A si B de marime N // N trebuie sa fie cel pe care il primesti in find_permutation // A si B trebuie indexate de la 0 si sa fie de marime cel putin N int query(char* A, char* B, int N); // De aici in sus nu ar trebui sa modifici nimic int rezperm[200]; // Functia trebuie sa returneze permutarea ceruta // Permutarea aici in implementare va fi indexata de la 0 int* find_permutation(int N) { int i; for(i = 0; i < N; ++i) rezperm[i] = i + 1; return rezperm;
}
void answer(vector<int> perm) { cout << "! "; for(auto it: perm) cout << it << " "; cout << endl;
// De aici in jos nu ar trebui sa modifici nimic int query(char* A, char* B, int N) { int i, val; fputc('?', stdout); for(i = 0; i < N; ++i) fputc(A[i], stdout); fputc(' ', stdout); for(i = 0; i < N; ++i) fputc(B[i], stdout); fputc('\n', stdout); fflush(stdout); scanf("%d", &val); if(val == -1) exit(0); return val;
} int main() {
int T;
int i, T, N, *perm;
cin >> T; while(T--) { int N; cin >> N; vector<int> perm = find_permutation(N); answer(perm);
scanf("%d", &T); while(T--) { scanf("%d", &N); if(N == -1) exit(0); perm = find_permutation(N); printf("! "); for(i = 0; i < N; ++i) printf("%d ", perm[i]); printf("\n"); fflush(stdout); } return 0; } == h1. Template Rust ==code(rs) | use std::string::String; use std::io; use std::process::exit; fn find_permutation(n: i32) -> Vec<i32> { let mut res : Vec<i32> = Vec::new(); for i in 0..n { res.push(i + 1); } res } // De aici in jos nu ar trebui sa modifici nimic fn read_i32() -> i32 { let mut text = String::new(); io::stdin().read_line(&mut text).expect("Failed to read line!"); let val = text.trim().parse().expect("Expected number!"); if val == -1 { exit(0);
}
return 0;
val } fn query(a: String, b: String) -> i32 { println!("? {} {}", a, b); read_i32()
}
fn main() { let t = read_i32(); for _i in 0..t { let n = read_i32(); if n == -1 { exit(0); } let perm = find_permutation(n); print!("! "); for element in perm { print!("{} ", element); } print!("\n"); } }
==