Submission #336523

#TimeUsernameProblemLanguageResultExecution timeMemory
336523mehrdad_sohrabiAirline Route Map (JOI18_airline)C++14
100 / 100
921 ms37868 KiB
#include <bits/stdc++.h> #include "Alicelib.h" typedef long long int ll; typedef long double ld; #define pb push_back #define pii pair < ll , ll > #define F first #define S second #define endl '\n' //#define int long long #define sync ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0) #pragma GCC optimize("Ofast,no-stack-protector,unroll-loops,fast-math") #define kill(x) return cout<<x<<'\n', 0; using namespace std; void Alice( int n,int m,int A[],int B[]){ vector <int> ras; for (int i=n;i<n+12;i++){ ras.pb(i); } vector <pii> mm; for (int i=0;i<m;i++){ mm.pb({A[i],B[i]}); } for (int i=n+1;i<n+11;i++){ mm.pb({n,i}); mm.pb({i,n+11}); } for (int i=n+2;i<n+11;i++){ mm.pb({i,i-1}); } for (int i=0;i<n;i++){ mm.pb({i,n+11}); } for (int i=0;i<n;i++){ for (int j=0;j<10;j++){ if ((i & (1<<j))){ mm.pb({i,n+1+j}); } } } InitG(n+12,mm.size()); for (int i=0;i<mm.size();i++){ MakeG(i, mm[i].F, mm[i].S); } /* cout << n+12 << " " << mm.size() << endl; for (int i=0;i<mm.size();i++){ cout << mm[i].F << " "; } cout << endl; for (int i=0;i<mm.size();i++){ cout << mm[i].S << " "; } */ } /* int a[100],b[100]; int32_t main(){ int n,m; cin >> n >> m; for (int i=0;i<m;i++){ cin >> a[i] >> b[i]; } Alice(n,m,a,b); } */
#include <bits/stdc++.h> #include "Boblib.h" typedef long long int ll; typedef long double ld; #define pb push_back #define pii pair < ll , ll > #define F first #define S second //#define endl '\n' //#define int long long #define sync ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0) #pragma GCC optimize("Ofast,no-stack-protector,unroll-loops,fast-math") #define kill(x) return cout<<x<<'\n', 0; using namespace std; void Bob(int V,int U,int C[],int D[]){ ll id=0,mx=0; vector <int> g[V]; for (int i=0;i<U;i++){ g[C[i]].pb(D[i]); g[D[i]].pb(C[i]); } for (int i=0;i<V;i++){ if (g[i].size()>mx){ mx=g[i].size(); id=i; } } for (int i=0;i<V;i++){ // if (i!=id && g[i].size()==mx) cout << 1/0; } ll w=0; ll vis[V]; memset(vis,0,sizeof vis); ll bad[V]; memset(bad,0,sizeof bad); for (auto u : g[id]){ vis[u]=1; } for (int i=0;i<V;i++){ if (vis[i]==0 && i!=id) w=i; } bad[w]=2; bad[id]=2; // cout << id << " rvr " << w << endl; vector <pii> ras; for (auto u : g[w]){ ras.pb({g[u].size(),u}); bad[u]=1; } sort(ras.begin(),ras.end()); vector <int> bit; // bit.pb(ras[0].S); ll qe=0; ll y=0; for (int i=0;i<V;i++){ if (bad[i]==1){ y++; ll cnt=0; for (auto u : g[i]){ if (bad[u]==1) cnt++; } if (cnt==1) qe++; if (cnt>2) cout << 1/0; } } // if (y!=10) cout << 1/0; // if (qe!=2) cout << 1/0; queue <int> q; q.push(ras[0].S); // if (ras.size()>1 && g[ras[0].S].size()==g[ras[1].S].size()) cout << 1/0; while(q.size()){ ll v=q.front(); //if (q.size()>2) cout << 1/0; bad[v]=2; q.pop(); bit.pb(v); for (auto u : g[v]){ if (bad[u]==1){ q.push(u); } } } reverse(bit.begin(),bit.end()); ll val[V]; memset(val,0,sizeof val); for (int i=0;i<bit.size();i++){ ll v=bit[i]; for (auto u : g[v]){ if (bad[u]) continue; val[u]+=(1<<i); } } vector <pii> m; for (int i=0;i<V;i++){ if (bad[i]) continue; for (auto u : g[i]){ if (bad[u] || val[u]>val[i]) continue; m.pb({val[u],val[i]}); } } // for (auto u : m){ // cout << u.F << " " << u.S << endl; // } //for (int i=0;i<V;i++){ // cout << val[i] << " fejf " << bad[i] << endl; //} //for (auto u : bit){ // cout << u << endl; //} InitMap(V-12,m.size()); for (auto u : m){ MakeMap(u.F,u.S); } } /* int a[100]; int b[100]; int32_t main(){ int n,m; cin >> n >> m; for (int i=0;i<m;i++){ cin >> a[i]; } for (int i=0;i<m;i++){ cin >> b[i]; } Bob(n,m,a,b); } */

Compilation message (stderr)

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

Bob.cpp: In function 'void Bob(int, int, int*, int*)':
Bob.cpp:23:24: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'll' {aka 'long long int'} [-Wsign-compare]
   23 |         if (g[i].size()>mx){
      |             ~~~~~~~~~~~^~~
Bob.cpp:63:33: warning: division by zero [-Wdiv-by-zero]
   63 |             if (cnt>2) cout << 1/0;
      |                                ~^~
Bob.cpp:87:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   87 |     for (int i=0;i<bit.size();i++){
      |                  ~^~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...