Submission #2172757


Source Code Expand

#include <iostream>

using namespace std;
typedef long long  ll;
#define rep(i,s,n)for(ll i = s;i<n;i++)

struct Node {
	char name[51];
	int count = 0;
	Node* next;
	Node* prev;
};

Node* nil;

void init() {
	nil = (Node *)malloc(sizeof(Node));
	nil->count = -1;
	nil->next = nil;
	nil->prev = nil;
}

bool ifExist(char* name, Node* node) {
	while (true) {
		rep(i, 0, 51) {
			if (name[i] == '\0' && node->name[i] == '\0') {
				return true;
			}
			else if (name[i] == '\0' || node->name[i] == '\0' || name[i] != node->name[i]) {
				return false;
			}
		}
	}
	return true;
}
void addLast(char* name) {
	Node* node = new Node;
	rep(i, 0, 51) {
		node->name[i] = name[i];
		if (name[i] == '\0') {
			break;
		}
	}
	node->count++;

	node->next = nil;
	nil->prev->next = node;
	node->prev = nil->prev;
	nil->prev = node;
}

void countName(char* name) {
	Node* node = nil->next;

	bool isExist = false;
	while (true) {
		if (node->count == -1)break;
		if (ifExist(name, node)) {
			isExist = true;
			node->count++;
			break;
		}
		node = node->next;
	}

	if (!isExist) {
		addLast(name);
	}
}

int main() {
	int N; cin >> N;
	char n[51];
	init();

	rep(i, 0, N) {
		cin >> n;
		countName(n);
	}

	int maxName = 0;
	Node* maxNode;
	Node* countNode = nil->next;

	while (true) {
		if (maxName < countNode->count) {
			maxNode = countNode;
			maxName = countNode->count;
		}
		countNode = countNode->next;
		if (countNode->count == -1) {
			break;
		}
	}

	cout << maxNode->name << endl;
	return 0;
}

Submission Info

Submission Time
Task B - 投票
User butanokakuni2
Language C++14 (GCC 5.4.1)
Score 100
Code Size 1593 Byte
Status AC
Exec Time 1 ms
Memory 256 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 100 / 100
Status
AC × 3
AC × 18
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
All sample_01.txt, sample_02.txt, sample_03.txt, case_01.txt, case_02.txt, case_03.txt, case_04.txt, case_05.txt, case_06.txt, case_07.txt, case_08.txt, case_09.txt, case_10.txt, case_11.txt, case_12.txt, case_13.txt, case_14.txt, case_15.txt
Case Name Status Exec Time Memory
case_01.txt AC 1 ms 256 KB
case_02.txt AC 1 ms 256 KB
case_03.txt AC 1 ms 256 KB
case_04.txt AC 1 ms 256 KB
case_05.txt AC 1 ms 256 KB
case_06.txt AC 1 ms 256 KB
case_07.txt AC 1 ms 256 KB
case_08.txt AC 1 ms 256 KB
case_09.txt AC 1 ms 256 KB
case_10.txt AC 1 ms 256 KB
case_11.txt AC 1 ms 256 KB
case_12.txt AC 1 ms 256 KB
case_13.txt AC 1 ms 256 KB
case_14.txt AC 1 ms 256 KB
case_15.txt AC 1 ms 256 KB
sample_01.txt AC 1 ms 256 KB
sample_02.txt AC 1 ms 256 KB
sample_03.txt AC 1 ms 256 KB