Submission

Status:

PP-P--------------P-

Subtask/Task Score:

20/100

Score: 20

User: achinhchin

Problemset: Chord and Inversions

Language: cpp

Time: 0.029 second

Submitted On: 2025-10-05 23:51:04

#include <stdio.h>
#include <string.h>
typedef long long l;
char note[][3]={"C","C#","D","D#","E","F","F#","G","G#","A","A#","B"},t[3],m,crd[3],lst[3],D[3],d,mn;
l n,w,ln,c,i,j;

int main() {
	scanf("%lli %lli",&n,&w);
	while(n--) {
		scanf("%s",t);for(ln=0;t[ln];ln++);
		(t[ln-1]=='m')?(m=1,t[--ln]=0):(m=0);
		for(c=0;strcmp(note[c],t);c++);
		crd[0]=c,crd[1]=(c+4-(m?1:0))%12,crd[2]=(c+7)%12;
		if(lst[0]!=lst[1]){
			for(i=0;i<3;i++){
				D[i]=0;
				for(j=0;j<3;j++)d=crd[(j+i)%3]-lst[j],d=d>0?d:-d,d=d>6?12-d:d,D[i]+=d;
			}
			w=0;if(D[1]<D[0])w=1;if(D[2]<D[w])w=2;
		}
		for(i=0;i<3;i++)printf("%s ",note[lst[i]=crd[(i+w)%3]]);
		printf("\n");
	}
}