제출 #934118

#제출 시각아이디문제언어결과실행 시간메모리
934118Saul0906City (JOI17_city)C++14
8 / 100
296 ms43956 KiB
#include <bits/stdc++.h> #include "Encoder.h" #define rep(a,b,c) for(int a=b; a<c; a++) #define repa(a,b) for(auto a:b) #define ll long long #define pb push_back using namespace std; const int lim=3e5+5; ll tim=0, tin[lim], tout[lim]; vector<int> ady[lim]; void dfs(int u, int p){ tin[u]=tim; repa(v,ady[u]){ if(v!=p) dfs(v,u); } tout[u]=tim++; } void Encode(int N, int *A, int *B){ rep(i,0,N-1){ ady[A[i]].pb(B[i]); ady[B[i]].pb(A[i]); } dfs(0,-1); rep(i,0,N){ ll x=abs(tout[i]-125000); x<<=17; x+=abs(tin[i]-125000); x^=(ll)(tin[i]<=125000)<<34; x^=(ll)(tout[i]<=125000)<<34; if(tin[i]==tout[i] && tin[i]<=125000) x|=(ll)(tout[i]<=125000)<<34; //cout<<i<<" "<<x<<" "<<(abs(tin[i]-125000))<<" "<<(abs(tout[i]-125000))<<endl; Code(i,x); } }
#include <bits/stdc++.h> #include "Device.h" #define rep(a,b,c) for(int a=b; a<c; a++) #define repa(a,b) for(auto a:b) #define ll long long using namespace std; void InitDevice(){ return; } const ll md=1<<17; int Answer(ll S, ll T){ ll a, b, c, d; a=(S%md); S>>=17; b=(S%md); S>>=17; if(S&1){ if(a!=b){ a=125000-a; b=125000+b; }else{ a=125000-a; b=125000-b; } }else{ if(a>b){ a=125000-a; b=125000-b; }else{ a=125000+a; b=125000+b; } } c=(T%md); T>>=17; d=(T%md); T>>=17; if(T&1){ if(c!=d){ c=125000-c; d=125000+d; }else{ c=125000-c; d=125000-d; } }else{ if(c>d){ c=125000-c; d=125000-d; }else{ c=125000+c; d=125000+d; } } if(a<=c && d<=b) return 1; if(c<=a && b<=d) return 0; return 2; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...