Submission #443828

#TimeUsernameProblemLanguageResultExecution timeMemory
443828KhizriMutating DNA (IOI21_dna)C++17
35 / 100
46 ms4804 KiB
#include "dna.h"
#include <bits/stdc++.h>
using namespace std;
#define all(v) (v).begin(),(v).end()
const int mxn=2e5+5;
string a,b;
int dp[mxn],la[mxn],ra[mxn],lb[mxn],rb[mxn];
void init(std::string A, std::string B) {
	a=A,b=B;
	if(a[0]!=b[0]){
		dp[0]=1;
	}
	if(a[0]=='A'){
		la[0]=1;
	}
	else{
		ra[0]=1;
	}
	if(b[0]=='A'){
		lb[0]=1;
	}
	else{
		rb[0]=1;
	}
	for(int i=1;i<a.size();i++){
		dp[i]=dp[i-1];
		la[i]=la[i-1];
		ra[i]=ra[i-1];
		lb[i]=lb[i-1];
		rb[i]=rb[i-1];
		if(a[i]!=b[i]){
			dp[i]=dp[i-1]+1;
		}
		if(a[i]=='A'){
			la[i]=la[i-1]+1;
		}
		else{
			ra[i]=ra[i-1]+1;
		}
		if(b[i]=='A'){
			lb[i]=lb[i-1]+1;
		}
		else{
			rb[i]=rb[i-1]+1;
		}
	}
}
int funk(int ind){
	if(ind>=0){
		return ind;
	}
	else{
		return 200000;
	}
}
int get_distance(int x, int y) {
	//cout<<(la[y]-la[funk(x-1)])<<' '<<(lb[y]-lb[funk(x-1)])<<"---"<<(lb[y]-lb[funk(x-1)])<<' '<<(rb[y]-rb[funk(x-1)])<<endl;
	if((la[y]-la[funk(x-1)])==(lb[y]-lb[funk(x-1)])&&(ra[y]-ra[funk(x-1)])==(rb[y]-rb[funk(x-1)])){
		
	}
	else{
		return -1;
	}
	if((dp[y]-dp[funk(x-1)])%2==1){
		return -1;
	}
	return (dp[y]-dp[funk(x-1)])/2;
}

Compilation message (stderr)

dna.cpp: In function 'void init(std::string, std::string)':
dna.cpp:25:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   25 |  for(int i=1;i<a.size();i++){
      |              ~^~~~~~~~~
#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...