제출 #68332

#제출 시각아이디문제언어결과실행 시간메모리
68332PajarajaGenetics (BOI18_genetics)C++17
0 / 100
53 ms17144 KiB
#include <bits/stdc++.h> using namespace std; int arr[4107][4107],ars[4107][70],uc[4][4107],k,m; bool c[4107],ps; bool check(int a,int b) { if(ps) { int x=0; for(int i=0;i<m;i++) if(arr[a][i]!=arr[b][i]) x++; if(x==k) return true; return false; } int x=0; for(int i=0;i<=(m-1)/64;i++) x+=__builtin_popcount(ars[a][i] xor ars[b][i]); if(x==k) return true; return false; } int main() { ios::sync_with_stdio(false); int n; cin>>n>>m>>k; string s; for(int i=0;i<n;i++) { cin>>s; for(int j=0;j<m;j++) { if(s[j]=='A') arr[i][j]=0; if(s[j]=='C') arr[i][j]=1; if(s[j]=='G') arr[i][j]=2; if(s[j]=='T') arr[i][j]=3; if(arr[i][j]>1) ps=true; uc[arr[i][j]][j]++; } } if(!ps) for(int i=0;i<n;i++) for(int j=0;j<m;j++) ars[i][j/64]+=(arr[i][j]<<(j%64)); /*for(int ttt=0;ttt<200000;ttt++) { int x=rand()%n,y=rand()%n; if(x==y) continue; int st=0; if(!check(x,y)) {c[x]=c[y]=true;}; }*/ for(int i=0;i<n;i++) if(!c[i]) { int skor=0; bool propo=false; for(int j=0;j<m;j++) skor+=(n-uc[arr[i][j]][j]); if(skor!=(n-1)*k) continue; for(int j=0;j<n;j++) if(i!=j) { int x=0; if(!check(i,j)) {propo=true; break;} } if(propo) continue; printf("%d",i+1); return 0; } }

컴파일 시 표준 에러 (stderr) 메시지

genetics.cpp: In function 'int main()':
genetics.cpp:54:8: warning: unused variable 'x' [-Wunused-variable]
    int x=0;
        ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...