Submission #1283451

#TimeUsernameProblemLanguageResultExecution timeMemory
1283451LuvidiWorld Map (IOI25_worldmap)C++20
15 / 100
43 ms5332 KiB
#include "worldmap.h"
#include <bits/stdc++.h>
using namespace std;

#define pb push_back
#define pii pair<int,int>

vector<int> ad[41],st;
set<pii> ss;
bool vs[41];

void dfs(int v){
    vs[v]=1;
    st.pb(v);
    for(int u:ad[v]){
        if(vs[u]){
            if(!ss.count({u,v})){
                ss.insert({u,v});
                ss.insert({v,u});
                st.pb(u);
                st.pb(v);
            }
        }else{
            ss.insert({u,v});
            ss.insert({v,u});
            dfs(u);
            st.pb(v);
        }
    }
}

std::vector<std::vector<int>> create_map(int n, int m, std::vector<int> a, std::vector<int> b) {
    for(int i=1;i<=n;i++){
        ad[i].clear();
        vs[i]=0;
    }
    ss.clear();
    st.clear();
    for(int i=0;i<m;i++){
        ad[a[i]].pb(b[i]);
        ad[b[i]].pb(a[i]);
    }
    dfs(1);
    int sz=120;
    vector<vector<int>> ans(sz,vector<int>(sz,1));
    vector<pii> od;
    for(int i=0;i<sz;i+=2){
        if(i%4==0){
            for(int j=0;j<sz;j++)od.pb({i,j});
            if(i+1<sz)od.pb({i+1,sz-1});
        }else{
            for(int j=sz-1;j>-1;j--)od.pb({i,j});
            if(i+1<sz)od.pb({i+1,0});
        }
    }
    for(int i=0;i<st.size();i++){
        ans[od[i].first][od[i].second]=st[i];
    }
    return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...