Rezultati

Up. imeNalogaJezikRezultatČas oddaje
luftkanali-2019 Biodiverziteta C 100/100OK 09. maj '19 @ 16:33

Test Točke Porabljen spomin Porabljen čas Status
#1 [več] 20/20 2,988 MiB 0,129 s OK
#2 [več] 20/20 4,469 MiB 0,181 s OK
#3 [več] 20/20 4,465 MiB 0,165 s OK
#4 [več] 20/20 4,441 MiB 0,120 s OK
#5 [več] 20/20 4,465 MiB 0,187 s OK

Ocenjevani program (biodiverziteta.c):
#include<stdio.h>
#include<string.h>

int B[100001][4], D[100001][4];

int abs(int a){
	return a>0?a:-a;
}

int main(){
	int j, i, m, n, q;
	scanf("%d %d %d", &n, &m, &q);
	getchar();
	for(i=1;i<=n;++i){
		for(j=0;j<4;++j) B[i][j]=B[i-1][j];
		switch(getchar()){
			case 'A':
				++B[i][0];
				break;
			case 'C':
				++B[i][1];
				break;
			case 'G':
				++B[i][2];
				break;
			case 'T':
				++B[i][3];
				break;
		}
	}
	getchar();
	for(i=1;i<=m;++i){
		for(j=0;j<4;++j) D[i][j]=D[i-1][j];
		switch(getchar()){
			case 'A':
				++D[i][0];
				break;
			case 'C':
				++D[i][1];
				break;
			case 'G':
				++D[i][2];
				break;
			case 'T':
				++D[i][3];
				break;
		}
	}
	int sum, s, t, u, v;
	for(i=0;i<q;++i){
		scanf("%d %d %d %d", &s, &t, &u, &v);
		sum=0;
		for(j=0;j<4;++j){
			sum+=abs(B[s-1][j]-B[t][j]-(D[u-1][j]-D[v][j]));
		}
		printf("%d\n",sum);
	}
	return 0;
}