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){
priority_queue<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.push({a,{i,j}});
pq.push({a,{j,i}});
}
vector<int> ans;
int cur=pq.top().S.F;
ans.PB(cur);
vector<bool> vis(n,0);
vis[cur]=1;
while(!pq.empty()){
auto u=pq.top();
pq.pop();
if(u.S.F!=cur || vis[u.S.S])
continue;
cur=u.S.S;
ans.PB(cur);
vis[cur]=1;
}
/*
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... |