제출 #1197451

#제출 시각아이디문제언어결과실행 시간메모리
1197451segfault_ikuyoDNA 돌연변이 (IOI21_dna)C++20
100 / 100
22 ms4876 KiB
#include "dna.h" #include <bits/stdc++.h> using namespace std; int pfx[100005][6]; int ans,cnt[6]; void init(std::string a,std::string b){ for(int i=0;i<a.size();i++){ pfx[i+1][0]=pfx[i][0]+(a[i]=='A'&b[i]=='T'); pfx[i+1][1]=pfx[i][1]+(a[i]=='A'&b[i]=='C'); pfx[i+1][2]=pfx[i][2]+(a[i]=='T'&b[i]=='A'); pfx[i+1][3]=pfx[i][3]+(a[i]=='T'&b[i]=='C'); pfx[i+1][4]=pfx[i][4]+(a[i]=='C'&b[i]=='A'); pfx[i+1][5]=pfx[i][5]+(a[i]=='C'&b[i]=='T'); } } int get_distance(int x,int y){ y++; for(int i=0;i<6;i++) cnt[i]=pfx[y][i]-pfx[x][i]; if(cnt[0]+cnt[1]!=cnt[2]+cnt[4]) return -1; if(cnt[2]+cnt[3]!=cnt[0]+cnt[5]) return -1; if(cnt[4]+cnt[5]!=cnt[1]+cnt[3]) return -1; ans=min(cnt[0],cnt[2])+min(cnt[1],cnt[4])+min(cnt[3],cnt[5]); return ans+(max(cnt[0],cnt[2])+max(cnt[1],cnt[4])+max(cnt[3],cnt[5])-ans<<1)/3; }
#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...