#include <fstream>
#include <string>
#include <iostream>
#include <math.h>
// ./prog in.txt out.txt
// Peter A Noble, 2011, Alabama State University

using namespace std;


int main (int argc, char * const argv[]) {
	ifstream in(argv[1]); 		//probeseq
	ofstream out(argv[2]);		//output
	
	//int x=0;
	char id[50];
	int length=0;
	int A=0,C=0,G=0,T=0,N=0,TOTAL=0;
	int x=0;
	double GC;
	char nucl[25000];

	out << "ID\t" << "GC\t" << "bp\n";

	while(!in.eof())
	{
		in >> id;
		in >> length;
		//std::cout << id << "\t" << length << "\n";
		A=0,C=0,G=0,T=0,N=0;
		//exit(1);
		for(int d=0;d<(length);d++)
			{	
			in >> nucl[d];	
			if ((nucl[d]=='A') || (nucl[d]=='a') ) {A=A+1; }
			else if ((nucl[d]=='C') || (nucl[d]=='c') ) {C=C+1; }
			else if ((nucl[d]=='G') || (nucl[d]=='G') ) {G=G+1; }
			else if ((nucl[d]=='T') || (nucl[d]=='G') ) {T=T+1; }		
			else if ((nucl[d]=='N') || (nucl[d]=='n') ) {N=N+1; }		
			}
		x=x+1;
		
		TOTAL=A+C+G+T;
		GC=((double)(G+C)/TOTAL);
		//std::cout << id << "\t" << GC << "\t" << TOTAL << "\n";
		out << id << "\t" << GC << "\t" << TOTAL << "\n";
	}
		return 0;
	}