結果
| 問題 | No.164 ちっちゃくないよ!! |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2017-05-01 17:33:35 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
AC
|
| 実行時間 | 3 ms / 2,000 ms |
| コード長 | 2,083 bytes |
| コンパイル時間 | 674 ms |
| コンパイル使用メモリ | 65,192 KB |
| 実行使用メモリ | 6,944 KB |
| 最終ジャッジ日時 | 2024-09-14 01:56:53 |
| 合計ジャッジ時間 | 1,421 ms |
|
ジャッジサーバーID (参考情報) |
judge6 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 11 |
コンパイルメッセージ
main.cpp: In function ‘int main()’:
main.cpp:122:28: warning: ‘*Nnumber[0].Nnumbers::decimal’ may be used uninitialized [-Wmaybe-uninitialized]
122 | unsigned long long MIN_NUMBER = Nnumber[0].decimal;
| ^~~~~~~~~~
ソースコード
#include <iostream>
#include <string>
#include <vector>
/*
ascii 0 := 48, 9 := 57, A := 65, Z := 90
*/
class Nnumbers
{
public:
std::vector<char> number;
std::vector<int> number_decimal;
int max_number;
unsigned long long decimal;
void initializeNumberDecimal(void)
{
number_decimal.resize(number.size());
return;
}
void getMaxNumber(void)
{
char max_lit = '1';
for(int i = 0; i < number.size(); i ++)
{
if((int)max_lit < (int)number[i])
{
//std::cout << "yes" << std::endl;
max_lit = number[i];
}
}
if(48 <= (int)max_lit && (int)max_lit <= 57)
{
max_number = (int)max_lit - 48;
}
else
{
max_number = (int)max_lit - 55;
}
return;
}
void getNumberDecimal(void)
{
for(int i = 0; i < number.size(); i ++)
{
if(48 <= (int)number[i] && (int)number[i] <= 57)
{
number_decimal[i] = (int)number[i] - 48;
}
else
{
number_decimal[i] = (int)number[i] - 55;
}
}
return;
}
void getDecimal(void)
{
decimal = 0;
unsigned long long beki = 1;
getMaxNumber();
int numbers = number.size();
for(int i = numbers - 1; i >= 0; i --)
{
//std::cout << MAX_NUMBER << " " << beki << std::endl;
decimal += number_decimal[i] * beki;
beki = beki * (max_number + 1);
}
return;
}
};
int main(void)
{
int N;
std::cin >> N;
Nnumbers Nnumber[N];
std::string str[N];
for(int i = 0; i < N; i ++)
{
std::cin >> str[i];
int sizenumber = str[i].size();
for(int j = 0; j < sizenumber; j ++)
{
Nnumber[i].number.push_back(str[i][j]);
}
}
for(int i = 0; i < N; i ++)
{
Nnumber[i].initializeNumberDecimal();
Nnumber[i].getNumberDecimal();
Nnumber[i].getDecimal();
}
unsigned long long MIN_NUMBER = Nnumber[0].decimal;
for(int i = 1; i < N; i ++)
{
if(MIN_NUMBER > Nnumber[i].decimal)
{
MIN_NUMBER = Nnumber[i].decimal;
}
}
//for debug
/*
for(int i = 0; i < N; i ++)
{
std::cout << Nnumber[i].decimal << std::endl;
}
*/
std::cout << MIN_NUMBER << std::endl;
return 0;
}