提出 #102590
ソースコード 拡げる
#include<cstdio>
#include<algorithm>
#include<vector>
using namespace std;
typedef long long i64;
char in[500];
vector<pair<int, i64> > ex;
int pri[3];
int pritbl[20][3] = {
{0, 0, 0},
{1, 0, 0},
{0, 1, 0},
{0, 0, 1},
{1, 1, 0},
{1, 0, 1},
{0, 1, 1},
{0, 1, 2},
{0, 2, 1},
{2, 0, 1},
{1, 0, 2},
{1, 2, 0},
{2, 1, 0},
};
i64 sol()
{
vector<pair<int, i64> > tmp = ex;
while(tmp.size() > 1){
pair<int, int> zp = make_pair(100, 100);
i64 opval = 0;
int bonus = 0;
for(int i=1;i<tmp.size()-1;i++){
if(tmp[i-1].first == 3 && tmp[i+1].first == 4){
tmp.erase(tmp.begin() + (i+1));
tmp.erase(tmp.begin() + (i-1));
goto nex;
}
}
for(int i=0;i<tmp.size()-1;i++){
if(tmp[i].first == 3) bonus -= 100;
if(tmp[i].first == 4) bonus += 100;
if(i==0) continue;
if(tmp[i-1].first != 5 || tmp[i+1].first != 5) continue;
if(tmp[i].first <= 2){
zp = min(zp, make_pair(pri[tmp[i].first] + bonus,i));
}
}
if(tmp[zp.second].first == 0) opval = tmp[zp.second-1].second + tmp[zp.second+1].second;
if(tmp[zp.second].first == 1) opval = tmp[zp.second-1].second - tmp[zp.second+1].second;
if(tmp[zp.second].first == 2) opval = tmp[zp.second-1].second * tmp[zp.second+1].second;
tmp.erase(tmp.begin() + (zp.second+1));
tmp.erase(tmp.begin() + (zp.second));
tmp[zp.second-1] = make_pair(5, opval);
//for(int i=0;i<tmp.size();i++) printf("%d,%lld ", tmp[i].first, tmp[i].second);
//puts("");
nex:
continue;
}
return tmp[0].second;
}
int main()
{
scanf("%s", in);
//lex
i64 val = 0; bool flg = false;
for(int i=0;in[i];i++){
if(in[i]>='0'&&in[i]<='9'){
val *= 10;
val += in[i] - '0';
flg = true;
}else{
if(flg){
ex.push_back(make_pair(5, val));
val = 0;
flg = false;
}
if(in[i]=='('){
ex.push_back(make_pair(3, 0LL));
}
if(in[i]==')'){
ex.push_back(make_pair(4, 0LL));
}
if(in[i]=='+'){
ex.push_back(make_pair(0, 0LL));
}
if(in[i]=='-'){
ex.push_back(make_pair(1, 0LL));
}
if(in[i]=='*'){
ex.push_back(make_pair(2, 0LL));
}
}
}
if(flg) ex.push_back(make_pair(5, val));
i64 ret = 0;
ret = 1LL << 63LL;
for(int i=0;i<13;i++){
for(int j=0;j<3;j++) pri[j] = pritbl[i][j];
ret = max(ret, sol());
}
printf("%lld\n", ret);
return 0;
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | G - Unordered Operators |
| ユーザ | Operasan |
| 言語 | C++ (GCC 4.4.7) |
| 得点 | 100 |
| コード長 | 2417 Byte |
| 結果 | AC |
| 実行時間 | 35 ms |
| メモリ | 932 KiB |
コンパイルエラー
./Main.cpp: In function ‘int main()’: ./Main.cpp:73: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result
ジャッジ結果
| セット名 | All | ||
|---|---|---|---|
| 得点 / 配点 | 100 / 100 | ||
| 結果 |
|
| セット名 | テストケース |
|---|---|
| All | 00-sample1.txt, 00-sample2.txt, 00-sample3.txt, allpatterntest-00.txt, allpatterntest-01.txt, allpatterntest-02.txt, allpatterntest-03.txt, allpatterntest-04.txt, allpatterntest-05.txt, allpatterntest-06.txt, allpatterntest-07.txt, allpatterntest-08.txt, allpatterntest-09.txt, allpatterntest-10.txt, allpatterntest-11.txt, allpatterntest-12.txt, overflow-00.txt, overflow-01.txt, random0000.txt, random0001.txt, random0002.txt, random0003.txt, random0004.txt, random0005.txt, random0006.txt, random0007.txt, random0008.txt, random0009.txt, random0010.txt, random0011.txt, random0012.txt, random0013.txt, random0014.txt, random0015.txt, random0016.txt, random0017.txt, random0018.txt, random0019.txt, random0020.txt, random0021.txt, random0022.txt, random0023.txt, random0024.txt, random0025.txt, random0026.txt, random0027.txt, random0028.txt, random0029.txt, random0030.txt, random0031.txt, random0032.txt, random0033.txt, random0034.txt, random0035.txt, random0036.txt, random0037.txt, random0038.txt, random0039.txt, random0040.txt, random0041.txt, random0042.txt, random0043.txt, random0044.txt, random0045.txt, random0046.txt, random0047.txt, random0048.txt, random0049.txt, random0050.txt, random0051.txt, random0052.txt, random0053.txt, random0054.txt, random0055.txt, random0056.txt, random0057.txt, random0058.txt, random0059.txt, random0060.txt, random0061.txt, random0062.txt, random0063.txt, random0064.txt, random0065.txt, random0066.txt, random0067.txt, random0068.txt, random0069.txt, random0070.txt, random0071.txt, random0072.txt, random0073.txt, random0074.txt, random0075.txt, random0076.txt, random0077.txt, random0078.txt, random0079.txt, random0080.txt, random0081.txt, random0082.txt, random0083.txt, random0084.txt, random0085.txt, random0086.txt, random0087.txt, random0088.txt, random0089.txt, random0090.txt, random0091.txt, random0092.txt, random0093.txt, random0094.txt, random0095.txt, random0096.txt, random0097.txt, random0098.txt, random0099.txt, random0100.txt, random0101.txt, random0102.txt, random0103.txt, random0104.txt, random0105.txt, random0106.txt, random0107.txt, random0108.txt, random0109.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| 00-sample1.txt | AC | 22 ms | 924 KiB |
| 00-sample2.txt | AC | 20 ms | 800 KiB |
| 00-sample3.txt | AC | 35 ms | 748 KiB |
| allpatterntest-00.txt | AC | 22 ms | 804 KiB |
| allpatterntest-01.txt | AC | 22 ms | 920 KiB |
| allpatterntest-02.txt | AC | 19 ms | 796 KiB |
| allpatterntest-03.txt | AC | 20 ms | 800 KiB |
| allpatterntest-04.txt | AC | 20 ms | 800 KiB |
| allpatterntest-05.txt | AC | 20 ms | 800 KiB |
| allpatterntest-06.txt | AC | 20 ms | 800 KiB |
| allpatterntest-07.txt | AC | 20 ms | 804 KiB |
| allpatterntest-08.txt | AC | 21 ms | 796 KiB |
| allpatterntest-09.txt | AC | 21 ms | 800 KiB |
| allpatterntest-10.txt | AC | 21 ms | 804 KiB |
| allpatterntest-11.txt | AC | 21 ms | 796 KiB |
| allpatterntest-12.txt | AC | 21 ms | 804 KiB |
| overflow-00.txt | AC | 21 ms | 928 KiB |
| overflow-01.txt | AC | 21 ms | 924 KiB |
| random0000.txt | AC | 21 ms | 804 KiB |
| random0001.txt | AC | 21 ms | 800 KiB |
| random0002.txt | AC | 21 ms | 808 KiB |
| random0003.txt | AC | 21 ms | 800 KiB |
| random0004.txt | AC | 21 ms | 932 KiB |
| random0005.txt | AC | 21 ms | 932 KiB |
| random0006.txt | AC | 21 ms | 676 KiB |
| random0007.txt | AC | 21 ms | 800 KiB |
| random0008.txt | AC | 21 ms | 804 KiB |
| random0009.txt | AC | 21 ms | 924 KiB |
| random0010.txt | AC | 22 ms | 932 KiB |
| random0011.txt | AC | 20 ms | 800 KiB |
| random0012.txt | AC | 21 ms | 796 KiB |
| random0013.txt | AC | 21 ms | 920 KiB |
| random0014.txt | AC | 20 ms | 924 KiB |
| random0015.txt | AC | 20 ms | 800 KiB |
| random0016.txt | AC | 21 ms | 928 KiB |
| random0017.txt | AC | 21 ms | 800 KiB |
| random0018.txt | AC | 21 ms | 928 KiB |
| random0019.txt | AC | 20 ms | 928 KiB |
| random0020.txt | AC | 20 ms | 804 KiB |
| random0021.txt | AC | 21 ms | 804 KiB |
| random0022.txt | AC | 21 ms | 800 KiB |
| random0023.txt | AC | 20 ms | 704 KiB |
| random0024.txt | AC | 20 ms | 800 KiB |
| random0025.txt | AC | 21 ms | 804 KiB |
| random0026.txt | AC | 21 ms | 740 KiB |
| random0027.txt | AC | 21 ms | 924 KiB |
| random0028.txt | AC | 21 ms | 932 KiB |
| random0029.txt | AC | 20 ms | 672 KiB |
| random0030.txt | AC | 20 ms | 764 KiB |
| random0031.txt | AC | 21 ms | 804 KiB |
| random0032.txt | AC | 20 ms | 920 KiB |
| random0033.txt | AC | 21 ms | 800 KiB |
| random0034.txt | AC | 20 ms | 796 KiB |
| random0035.txt | AC | 20 ms | 796 KiB |
| random0036.txt | AC | 20 ms | 672 KiB |
| random0037.txt | AC | 21 ms | 792 KiB |
| random0038.txt | AC | 21 ms | 928 KiB |
| random0039.txt | AC | 21 ms | 760 KiB |
| random0040.txt | AC | 21 ms | 880 KiB |
| random0041.txt | AC | 21 ms | 732 KiB |
| random0042.txt | AC | 21 ms | 804 KiB |
| random0043.txt | AC | 20 ms | 800 KiB |
| random0044.txt | AC | 20 ms | 792 KiB |
| random0045.txt | AC | 21 ms | 928 KiB |
| random0046.txt | AC | 21 ms | 804 KiB |
| random0047.txt | AC | 21 ms | 928 KiB |
| random0048.txt | AC | 20 ms | 928 KiB |
| random0049.txt | AC | 20 ms | 796 KiB |
| random0050.txt | AC | 20 ms | 748 KiB |
| random0051.txt | AC | 21 ms | 796 KiB |
| random0052.txt | AC | 21 ms | 800 KiB |
| random0053.txt | AC | 20 ms | 924 KiB |
| random0054.txt | AC | 20 ms | 800 KiB |
| random0055.txt | AC | 21 ms | 676 KiB |
| random0056.txt | AC | 22 ms | 760 KiB |
| random0057.txt | AC | 21 ms | 796 KiB |
| random0058.txt | AC | 20 ms | 796 KiB |
| random0059.txt | AC | 21 ms | 728 KiB |
| random0060.txt | AC | 20 ms | 796 KiB |
| random0061.txt | AC | 20 ms | 920 KiB |
| random0062.txt | AC | 21 ms | 804 KiB |
| random0063.txt | AC | 20 ms | 704 KiB |
| random0064.txt | AC | 21 ms | 928 KiB |
| random0065.txt | AC | 21 ms | 800 KiB |
| random0066.txt | AC | 21 ms | 804 KiB |
| random0067.txt | AC | 20 ms | 788 KiB |
| random0068.txt | AC | 21 ms | 804 KiB |
| random0069.txt | AC | 21 ms | 732 KiB |
| random0070.txt | AC | 20 ms | 928 KiB |
| random0071.txt | AC | 20 ms | 704 KiB |
| random0072.txt | AC | 21 ms | 928 KiB |
| random0073.txt | AC | 20 ms | 700 KiB |
| random0074.txt | AC | 20 ms | 704 KiB |
| random0075.txt | AC | 20 ms | 920 KiB |
| random0076.txt | AC | 20 ms | 920 KiB |
| random0077.txt | AC | 20 ms | 804 KiB |
| random0078.txt | AC | 20 ms | 812 KiB |
| random0079.txt | AC | 21 ms | 804 KiB |
| random0080.txt | AC | 21 ms | 800 KiB |
| random0081.txt | AC | 22 ms | 676 KiB |
| random0082.txt | AC | 21 ms | 928 KiB |
| random0083.txt | AC | 21 ms | 800 KiB |
| random0084.txt | AC | 21 ms | 932 KiB |
| random0085.txt | AC | 20 ms | 924 KiB |
| random0086.txt | AC | 21 ms | 796 KiB |
| random0087.txt | AC | 23 ms | 768 KiB |
| random0088.txt | AC | 21 ms | 932 KiB |
| random0089.txt | AC | 21 ms | 924 KiB |
| random0090.txt | AC | 21 ms | 808 KiB |
| random0091.txt | AC | 21 ms | 804 KiB |
| random0092.txt | AC | 21 ms | 796 KiB |
| random0093.txt | AC | 21 ms | 924 KiB |
| random0094.txt | AC | 22 ms | 924 KiB |
| random0095.txt | AC | 22 ms | 764 KiB |
| random0096.txt | AC | 20 ms | 764 KiB |
| random0097.txt | AC | 20 ms | 676 KiB |
| random0098.txt | AC | 21 ms | 920 KiB |
| random0099.txt | AC | 21 ms | 928 KiB |
| random0100.txt | AC | 21 ms | 924 KiB |
| random0101.txt | AC | 21 ms | 804 KiB |
| random0102.txt | AC | 21 ms | 800 KiB |
| random0103.txt | AC | 20 ms | 800 KiB |
| random0104.txt | AC | 20 ms | 800 KiB |
| random0105.txt | AC | 21 ms | 800 KiB |
| random0106.txt | AC | 23 ms | 804 KiB |
| random0107.txt | AC | 21 ms | 928 KiB |
| random0108.txt | AC | 19 ms | 924 KiB |
| random0109.txt | AC | 21 ms | 728 KiB |
| sample4.txt | AC | 21 ms | 924 KiB |