#include <iostream>
#include <algorithm>
#include <vector>
#include <set>
#include <map>
#include <unordered_map>
#include <queue>
#include <string>
#include <math.h>
#include <cctype>
#include <cstdint>
#include <climits>
#include <iostream>
#include <algorithm>
#include <vector>
#include <set>
#include <map>
#include <unordered_map>
#include <queue>
#include <string>
#include <math.h>
#include <cctype>
#include <cstdint>
#include <climits>
#include <iomanip>
#include <vector>
#define ll long long
#define endl "\n"
using namespace std;
/**
* returns how many complaints you will receive for this ordering of the art collections
*/
int publish(std::vector<int>);
/**
* use this function when you have found the correct order of the art collections
* You must call answer exactly once; your program will be automatically
* terminated afterwards.
*/
void answer(std::vector<int>);
/**
* implement this function
*/
void solve(int n){
vector<int> permutation(n);
for(int i = 0; i<n; i++){
permutation[i] = i+1;
}
int first = publish(permutation);
vector<int> distFromOne(n,0);
for(int i = 1; i< n; i++){
swap(permutation[0],permutation[i]);
int cur = publish(permutation);
swap(permutation[i],permutation[0]);
distFromOne[i] = cur - first;
}
vector<pair<int,int>> ans(n);
for(int i = 0; i< n; i++){
ans[i] = {distFromOne[i],permutation[i]};
}
sort(ans.begin(),ans.end());
vector<int> actualAns(n);
for(int i = 0; i<n; i++){
actualAns[i] = ans[i].second;
}
answer(actualAns);
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |