結果
| 問題 |
No.193 筒の数式
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2015-07-11 19:50:04 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,794 bytes |
| コンパイル時間 | 477 ms |
| コンパイル使用メモリ | 57,104 KB |
| 実行使用メモリ | 6,948 KB |
| 最終ジャッジ日時 | 2024-07-08 03:07:31 |
| 合計ジャッジ時間 | 1,389 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | WA * 3 |
| other | AC * 2 WA * 14 |
コンパイルメッセージ
main.cpp: In function ‘int popStack()’:
main.cpp:26:20: warning: passing NULL to non-pointer argument 2 of ‘void* memset(void*, int, size_t)’ [-Wconversion-null]
26 | memset( temp , NULL , sizeof(temp) );
| ^~~~
In file included from /usr/include/features.h:486,
from /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h:39,
from /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h:586,
from /usr/include/c++/11/cstdlib:41,
from main.cpp:9:
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:57:1: note: declared here
57 | __NTH (memset (void *__dest, int __ch, size_t __len))
| ^~~~~
ソースコード
//
// main.cpp
// Q461
//
// Created by AkihiroKOBAYASHI on 7/11/15.
// Copyright (c) 2015 Akhr5884. All rights reserved.
//
#include <cstdlib>
#include <iostream>
#include <string>
#include <typeinfo>
#include <string.h>
char temp[20];
int head = 0;
void pushStack(char moji) {
temp[head] = moji;
head++;
}
int popStack() {
std::string stack;
stack = temp;
memset( temp , NULL , sizeof(temp) );
head = 0;
return std::stoi(stack);
}
int main(int argc, const char * argv[]) {
char moji[40];
char fugou = '+';
std::string formula;
int f_length, i, j, value, maxvalue;
value = 0;
maxvalue = -99999999;
std::cin >> formula;
f_length = (int)formula.length();
formula = formula + formula;
sprintf(moji, "%s", formula.c_str());
for(i = 0; i < f_length; i++) {
value = 0;
if(std::isdigit(static_cast<unsigned char>(moji[i])) && std::isdigit(static_cast<unsigned char>(moji[i+f_length-1]))) {
for(j = i; j < i + f_length; j++) {
if(moji[j] != '+' || moji[j] != '-'){
pushStack(moji[j]);
}
else {
if(fugou != '+') {
value += popStack();
}
else if(fugou != '-') {
value -= popStack();
}
fugou = moji[j];
}
}
if(fugou != '+') {
value += popStack();
}
else if(fugou != '-') {
value -= popStack();
}
if(value > maxvalue) {
maxvalue = value;
}
}
}
std::cout << maxvalue << '\n';
return 0;
}