結果
| 問題 | No.1729 ~サンプルはちゃんと見て!~ 16進数と8進数(1) | 
| コンテスト | |
| ユーザー |  kkkk97368086 | 
| 提出日時 | 2021-12-04 16:28:23 | 
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) | 
| 結果 | 
                                AC
                                 
                             | 
| 実行時間 | 2 ms / 2,000 ms | 
| コード長 | 929 bytes | 
| コンパイル時間 | 1,594 ms | 
| コンパイル使用メモリ | 176,368 KB | 
| 実行使用メモリ | 6,944 KB | 
| 最終ジャッジ日時 | 2024-07-06 22:38:48 | 
| 合計ジャッジ時間 | 2,581 ms | 
| ジャッジサーバーID (参考情報) | judge4 / judge2 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| other | AC * 24 | 
ソースコード
#include <bits/stdc++.h>
using namespace std;
int main()
{
	string N;
	cin >> N;
	int num = N.size();
	string b2;
	for( int i = 0; i < num; i++ ) {
		if( N[i] == 'A' ) b2 += string( "1010" );
		else if( N[i] == 'B' ) b2 += string( "1011" );
		else if( N[i] == 'C' ) b2 += string( "1100" );
		else if( N[i] == 'D' ) b2 += string( "1101" );
		else if( N[i] == 'E' ) b2 += string( "1110" );
		else if( N[i] == 'F' ) b2 += string( "1111" );
	}
	map<int, int> mp;
	num = b2.size();
	for( int i = num; i > 0; i -= 3 ) {
		int k = min( i, 3 );
		string s = b2.substr( i - k, k );
		int n = 0;
		for( int j = 0; j < k; j++ ) n = n * 2 + s[j] - '0';
		mp[n]++;
	}
	int ma = 0;
	for( auto it = mp.begin(); it != mp.end(); it++ ) {
		ma = max( ma, it->second );
	}
	int f = 0;
	for( auto it = mp.begin(); it != mp.end(); it++ ) {
		if( it->second == ma ) {
			if( f ) cout << " ";
			cout << it->first;
			f = 1;
		}
	}
	cout << endl;
}
            
            
            
        