Submission #655662

#TimeUsernameProblemLanguageResultExecution timeMemory
655662haojiandanAirline Route Map (JOI18_airline)C++14
100 / 100
675 ms29092 KiB
#include "Alicelib.h" #include <bits/stdc++.h> using namespace std; namespace { #define MP make_pair vector<pair<int,int> > ans; void add(int x,int y) { ans.push_back(MP(x,y)); } }; void Alice( int n, int m, int A[], int B[] ) { for (int i=n;i<=n+9;i++) for (int j=0;j<n;j++) if (j>>(i-n)&1) add(i,j); for (int i=0;i<m;i++) add(A[i],B[i]); int s=n+10,t=n+11; for (int i=0;i<s;i++) add(i,s); for (int i=n;i<n+9;i++) add(i,i+1); for (int i=n;i<=n+9;i++) add(t,i); InitG(t+1,(int)ans.size()); for (int i=0;i<ans.size();i++) MakeG(i,ans[i].first,ans[i].second); }
#include "Boblib.h" #include <bits/stdc++.h> using namespace std; namespace { #define MP make_pair const int maxn=1020; int id[maxn],G[maxn][maxn]; bool mk[maxn],H[maxn]; int Deg[maxn],deg[maxn]; vector<int> vec[maxn]; vector<int> V; void DFS(int x,int p) { V.push_back(x); for (int &y : vec[x]) if (y!=p) DFS(y,x); } vector<pair<int,int> > ans; void add(int x,int y) { ans.push_back(MP(x,y)); } }; void Bob( int N, int M, int C[], int D[] ){ int n=N-12; if (n==1) { InitMap(1,0); return; } for (int i=0;i<M;i++) { deg[C[i]]++,deg[D[i]]++; G[C[i]][D[i]]=G[D[i]][C[i]]=1; } int s=-1,t=-1; for (int i=0;i<N;i++) if (deg[i]==N-2) { s=i; break; } for (int i=0;i<N;i++) if (s!=i&&!G[s][i]) { t=i; break; } for (int i=0;i<N;i++) if (s!=i&&t!=i&&G[t][i]) mk[i]=1; for (int i=0;i<N;i++) for (int j=0;j<N;j++) if (G[i][j]&&i!=j&&mk[i]&&mk[j]) Deg[i]++,vec[i].push_back(j); for (int i=0;i<N;i++) if (Deg[i]==1) { DFS(i,-1); break; } if (deg[V[0]]<deg[V.back()]) reverse(V.begin(),V.end()); for (int i=0;i<N;i++) if (i!=s&&i!=t&&!mk[i]) { H[i]=1; for (int j=0;j<V.size();j++) if (G[i][V[j]]) id[i]|=1<<j; } for (int i=0;i<N;i++) if (H[i]) for (int j=i+1;j<N;j++) if (H[j]&&G[i][j]) add(id[i],id[j]); InitMap(n,(int)ans.size()); for (auto [x,y] : ans) MakeMap(x,y); }

Compilation message (stderr)

Alice.cpp: In function 'void Alice(int, int, int*, int*)':
Alice.cpp:21:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   21 |  for (int i=0;i<ans.size();i++) MakeG(i,ans[i].first,ans[i].second);
      |               ~^~~~~~~~~~~

Bob.cpp: In function 'void Bob(int, int, int*, int*)':
Bob.cpp:40:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   40 |   for (int j=0;j<V.size();j++) if (G[i][V[j]]) id[i]|=1<<j;
      |                ~^~~~~~~~~
Bob.cpp:44:12: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   44 |  for (auto [x,y] : ans) MakeMap(x,y);
      |            ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...