# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
72684 | mhnd | Simurgh (IOI17_simurgh) | C++14 | 2 ms | 560 KiB |
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 "simurgh.h"
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const int N = 2e5+50;
const int oo = 1e9;
const int mod = 1e9+7;
vector<pair<int,int>> g[510];
bool taken[510],used[N];
vector<int> find_roads(int n, vector<int> U, vector<int> V) {
for(int i=0;i<(int)U.size();i++){
g[U[i]].push_back({V[i],i});
g[V[i]].push_back({U[i],i});
}
vector<int> ans;
for(int i=0;i<n;i++){
for(int j=0;j<g[i].size();j++){
int v = g[i][j].first;
int w = g[i][j].second;
if(taken[i] && taken[v] || used[w])continue;
taken[i]=taken[v]=1;
used[w]=1;
ans.push_back(w);
}
}
int lst = count_common_roads(ans);
for(int i=0;i<ans.size();i++){
int cur = 0;
taken[U[ans[i]]]=taken[V[ans[i]]]=0;
bool f=0;
for(int j=0;j<g[U[ans[i]]].size();j++){
int v = g[U[ans[i]]][j].first;
int u = U[ans[i]];
if((taken[u] && taken[v]) || used[g[U[ans[i]]][j].second])continue;
int tmp = ans[i];
ans[i] = g[U[ans[i]]][j].second;
cur = count_common_roads(ans);
if(cur > lst){
taken[v]=taken[u]=1;
used[ans[i]]=1;
f=1;
lst = cur;
break;
}
ans[i] = tmp;
}
if(f)continue;
for(int j=0;j<g[V[ans[i]]].size();j++){
int v = g[V[ans[i]]][j].first;
int u = V[ans[i]];
if((taken[u] && taken[v]) || g[V[ans[i]]][j].second == i)continue;
int tmp = ans[i];
ans[i] = g[V[ans[i]]][j].second;
cur = count_common_roads(ans);
if(cur > lst){
taken[v]=taken[u]=1;
used[ans[i]]=1;
f=1;
lst = cur;
break;
}
ans[i] = tmp;
}
if(f)continue;
taken[U[ans[i]]]=taken[V[ans[i]]]=1;
}
sort(ans.begin(),ans.end());
return ans;
}
Compilation message (stderr)
# | 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... |