This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
#include "fun.h"
#pragma GCC optimize("O2")
#define deb(x) cout << #x << " = " << x <<endl
#define F first
#define S second
#define PB push_back
#define MP make_pair
#define all(c) c.begin(), c.end()
#define endl "\n"
#define sz(u) (int)(u.size())
#define L(x)(2*x)
#define R(x)(2*x+1)
#define M(x,y)((x+y)/2)
typedef long long ll;
typedef unsigned long long ull;
using namespace std;
/*
int hoursRequired(int x,int y){
cout<<x<<" "<<y<<endl;
int ans;
cin>>ans;
return ans;
assert(0);
}
*/
vector<int> createFunTour(int n,int q){
vector<pair<int,pair<int,int>>> pq;
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
if(i!=j){
assert(i<n && i>=0 && j>=0 && j<n);
int a=hoursRequired(i,j);
pq.PB({a,{i,j}});
pq.PB({a,{j,i}});
}
sort(all(pq));
reverse(all(pq));
vector<bool> vis(n,0);
int cur=pq[0].S.F;
vector<int> ans;
ans.PB(cur);
vis[cur]=1;
while(sz(ans)<n){
int mxd=-1,mxi=-1;
for(int i=0;i<sz(pq);i++)
if(pq[i].S.F==cur && pq[i].F>mxd && !vis[pq[i].S.S]){
mxd=pq[i].F,mxi=pq[i].S.S;
}
vis[mxi]=1;
cur=mxi;
ans.PB(cur);
}
/*
for(auto x:ans)
cout<<x<<" ";
*/
return ans;
}
/*
int main(){
createFunTour(2,0);
}
*/
# | 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... |