CSES - HIIT Open 2018 - Results
Submission details
Task:HIIT Generation
Sender:Karhukopla
Submission time:2018-05-26 11:33:05 +0300
Language:C++
Status:READY
Result:ACCEPTED
Test results
testverdicttime
#1ACCEPTED0.24 sdetails
#2ACCEPTED0.32 sdetails
#3ACCEPTED0.20 sdetails
#4ACCEPTED0.01 sdetails

Compiler report

input/code.cpp: In function 'int main()':
input/code.cpp:52:15: warning: array subscript has type 'char' [-Wchar-subscripts]
   swap(q, ns[c]);
               ^
input/code.cpp:53:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for (int i = 0; i < q.size(); i++) {
                   ~~^~~~~~~~~~

Code

#include <bits/stdc++.h>

#define ll long long
#define lll __int128
#define pii pair<int, int>
#define M 1000000007
#define N (1<<20)
using namespace std;

struct node {
	char v;
	vector<node*> ch;
	node (char c) {
		v = c;
		ch = {};
	}
};

vector<node*> ns[255];

void push (node* &n) {
	n->ch.push_back(new node('H'));
	n->ch.push_back(new node('I'));
	n->ch.push_back(new node('I'));
	n->ch.push_back(new node('T'));
	ns['H'].push_back(n->ch[0]);
	ns['I'].push_back(n->ch[1]);
	ns['I'].push_back(n->ch[2]);
	ns['T'].push_back(n->ch[3]);
}

void print (node* n) {
	if (n->ch.empty()) cout<<(n->v);
	else {
		print(n->ch[0]);
		print(n->ch[1]);
		print(n->ch[2]);
		print(n->ch[3]);
	}
}

int main () {
	node* root = new node('*');
	push(root);
	int n;
	cin>>n;
	while (n --> 0) {
		char c;
		cin>>c;
		
		vector<node*> q;
		swap(q, ns[c]);
		for (int i = 0; i < q.size(); i++) {
			push(q[i]);
		}
	}
	print(root);
	cout<<endl;
}

Test details

Test 1

Verdict: ACCEPTED

input
17
I
I
I
I
...

correct output
HHHHHHHHHHHHHHHHHHIITHIITTHHII...

user output
HHHHHHHHHHHHHHHHHHIITHIITTHHII...

Test 2

Verdict: ACCEPTED

input
333332
H
H
H
H
...

correct output
HIITIITIITIITIITIITIITIITIITII...

user output
HIITIITIITIITIITIITIITIITIITII...

Test 3

Verdict: ACCEPTED

input
24
H
T
H
T
...

correct output
HIIHIITIIHIIHIITIIHIITIIHIIHII...

user output
HIIHIITIIHIIHIITIIHIITIIHIIHII...

Test 4

Verdict: ACCEPTED

input
0

correct output
HIIT

user output
HIIT