Submission #1307826

#TimeUsernameProblemLanguageResultExecution timeMemory
1307826exoworldgdWorld Map (IOI25_worldmap)C++20
0 / 100
1 ms572 KiB
#include "worldmap.h" #include <bits/stdc++.h> #define exoworldgd cin.tie(0)->sync_with_stdio(0),cout.tie(0) using namespace std; using ll=long long; vector<vector<int>>create_map(int n,int m,vector<int>a,vector<int>b){ vector<set<int>>adj(n+1); for(int i=0;i<m;i++)adj[a[i]].insert(b[i]),adj[b[i]].insert(a[i]); bool ok=(m==n-1); if(ok)for(int i=1;i<=n-1;i++)if(!adj[i].count(i+1)){ok=0;break;} if(ok){ vector<vector<int>>g(1,vector<int>(n)); for(int i=0;i<n;i++)g[0][i]=i+1; return g; } int k=2*n; vector<vector<int>>g(k,vector<int>(k)); for(int i=0;i<n;i++){ int r=i*2,c=i*2; for(int dr=0;dr<2&&r+dr<k;dr++)for(int dc=0;dc<2&&c+dc<k;dc++)g[r+dr][c+dc]=i+1; } for(int i=0;i<m;i++){ int c1=a[i]-1,c2=b[i]-1,r1=c1*2,col1=c1*2,r2=c2*2,col2=c2*2; if(r1>r2)swap(r1,r2),swap(col1,col2),swap(c1,c2); if(abs(c1-c2)==1){ int minc=min(col1,col2),maxc=max(col1,col2); for(int c=minc+2;c<maxc;c++)g[r1][c]=a[i]; } } return g; }
#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...