Submission #6149

#TimeUsernameProblemLanguageResultExecution timeMemory
6149gs13068한자 끝말잇기 (JOI14_kanji)C++98
0 / 100
212 ms11732 KiB
#include "Annalib.h" #include<algorithm> static long long D[300][300]; static long long G[60]; static int Y[60]; void Anna(int N,int M,int A[],int B[],long long C[],int Q,int S[],int T[],int K,int U[]) { long long val=0,mul=1; int i,j,k,l; for(i=0;i<N;i++)for(j=0;j<N;j++)D[i][j]=4e18; for(i=0;i<M;i++) { for(j=0;j<K;j++)if(i==U[j])break; if(j==K)D[A[i]][B[i]]=C[i]; } for(i=0;i<N;i++)D[i][i]=0; for(k=0;k<N;k++)for(i=0;i<N;i++)for(j=0;j<N;j++)if(D[i][j]>D[i][k]+D[k][j])D[i][j]=D[i][k]+D[k][j]; for(i=0;i<Q;i++)Y[i]=K; for(i=0;i<K;i++) { for(j=0;j<i;j++) { l=0; for(k=0;k<Q;k++)if(Y[k]==j) { G[l]=D[B[U[i]]][T[k]]-D[B[U[j]]][T[k]]; if(G[l]<-C[U[i]]+C[U[j]])Y[k]=i; l++; } std::sort(G,G+l); k=std::lower_bound(G,G+l,-C[U[i]]+C[U[j]])-G; val+=k*mul; mul*=l+1; } l=0; for(k=0;k<Q;k++)if(Y[k]==K) { G[l]=D[S[k]][A[U[i]]]+D[B[U[i]]][T[k]]-D[S[k]][T[k]]; if(G[l]<-C[U[i]])Y[k]=i; l++; } if(l==0)continue; std::sort(G,G+l); k=std::lower_bound(G,G+1,-C[U[i]])-G; val+=k*mul; mul*=l+1; } while(val) { Tap(val&1); val>>=1; } }
#include "Brunolib.h" #include<algorithm> static long long D[300][300]; static int V[300][300]; static std::pair<long long,int> G[60]; static int Y[60]; static void answer(int i,int j) { if(V[i][j]>0)Answer(V[i][j]-1); if(V[i][j]<0) { answer(i,-V[i][j]-1); answer(-V[i][j]-1,j); } } void Bruno(int N,int M,int A[],int B[],long long C[],int Q,int S[],int T[],int K,int U[],int L,int X[]) { long long val=0,mul=1; int i,j,k,l,p; for(i=0;i<N;i++)for(j=0;j<N;j++)D[i][j]=4e18; for(i=0;i<M;i++)if(C[i]>0) { D[A[i]][B[i]]=C[i]; V[A[i]][B[i]]=i+1; } for(i=0;i<N;i++) { D[i][i]=0; V[i][i]=0; } for(k=0;k<N;k++)for(i=0;i<N;i++)for(j=0;j<N;j++)if(D[i][j]>D[i][k]+D[k][j]) { D[i][j]=D[i][k]+D[k][j]; V[i][j]=-k-1; } for(i=0;i<L;i++) { val+=X[i]*mul; mul<<=1; } for(i=0;i<Q;i++)Y[i]=K; for(i=0;i<K;i++) { for(j=0;j<i;j++) { l=0; for(k=0;k<Q;k++)if(Y[k]==j) { G[l].first=D[B[U[i]]][T[k]]-D[B[U[j]]][T[k]]; G[l].second=k; l++; } if(l==0)continue; std::sort(G,G+l); for(k=0;k<val%(l+1);k++)Y[G[k].second]=i; val/=l+1; } l=0; for(k=0;k<Q;k++)if(Y[k]==K) { G[l].first=D[S[k]][A[U[i]]]+D[B[U[i]]][T[k]]-D[S[k]][T[k]]; G[l].second=k; l++; } if(l==0)continue; std::sort(G,G+l); for(k=0;k<val%(l+1);k++)Y[G[k].second]=i; val/=l+1; } for(i=0;i<Q;i++) { if(Y[i]==K)answer(S[i],T[i]); else { answer(S[i],A[U[Y[i]]]); Answer(U[Y[i]]); answer(B[U[Y[i]]],T[i]); } Answer(-1); } }

Compilation message (stderr)

Bruno.cpp: In function 'void Bruno(int, int, int*, int*, long long int*, int, int*, int*, int, int*, int, int*)':
Bruno.cpp:22:15: warning: unused variable 'p' [-Wunused-variable]
   int i,j,k,l,p;
               ^
#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...