# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1009648 | canadavid1 | DNA 돌연변이 (IOI21_dna) | C++17 | 29 ms | 7184 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "dna.h"
#include <vector>
#include <numeric>
std::vector<int> ct[3][3];
void init(std::string a, std::string b) {
for(auto& i : ct)
for(auto& j : i) j = std::vector<int>(a.size()+1,0);
for(int i = 0; i < a.size(); i++)
{
ct[(a[i]/2)&3][(b[i]/2)&3][i]=1;
}
for(auto& i : ct)
for(auto& j : i)
std::exclusive_scan(j.begin(),j.end(),j.begin(),0);
}
int get_distance(int x, int y) {
y++;
int pr[3];
int c=0;
for (int i = 0; i < 3; i++)
{
int j = (i+1)%3;
auto a = ct[i][j][y] - ct[i][j][x];
auto b = ct[j][i][y] - ct[j][i][x];
c += std::min(a,b);
pr[i] = a-b;
}
if(pr[0]!=pr[1] || pr[1] != pr[2]) return -1;
c += std::abs(2*pr[0]);
return c;
}
컴파일 시 표준 에러 (stderr) 메시지
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |