
お世話になっております。atCoderの勉強のためにABC135のC問題にトライしてみたのですが、ACにならず、17入力データ中4つしか通りません。プログラムのどこで間違えているのかわからないです。
https://atcoder.jp/contests/abc135/tasks/abc135_c
問題
N+1 個の街があり、
i 番目の街は A_i体のモンスターに襲われています。
N 人の勇者が居て、i 番目の勇者は i 番目または i+1 番目の街を襲っているモンスターを合計でB_i体まで倒すことができます。
N 人の勇者がうまく協力することで、合計して最大で何体のモンスターを倒せるでしょうか。
入力は以下のように与えられる。
N
A_1 A_2 ... A_{N+1}
B_1 B_2 ... B_N
例
2
3 5 2
4 5
=>9
作成したプログラムを以下に示します。
#include <iostream>
#include <vector>
using namespace std;
int main(){
int n, b_i, b_iadd1=0;
int B_i; // i番目の勇者が倒せる怪物の数
int sum = 0;
cin >> n;
vector<int> a(n+2); // 怪物の数
for(int i=1; i<=n+1; i++) cin >> a[i];
for(int i=1; i<=n; i++) {
cin >> B_i;
b_i = min(a[i] - b_iadd1, B_i);
b_iadd1 = min(a[i+1], B_i - b_i);
sum += b_i + b_iadd1;
}
cout << sum;
return 0;
}
改善箇所を教えていただきたいです。よろしくお願いします
No.1ベストアンサー
- 回答日時:
int sum = 0;
を
long long int sum = 0;
に変えてください。
sumの最大値は、10の9乗 × 10の5乗 =10の14乗
になるので、int型では格納できません。
long long int型であれば、十分格納可能です。
ご指摘いただいたように、sumでオーバーフローが生じていたようでした。型を変更することで、無事にacを取れました!今後も一部の入力に対してうまくいかない場合は型の確認をするように注意します!助かりました!!
ベストアンサーが選択可能になったら、1番さんを選ばせていただきます。
ありがとうございました
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C++初心者です stirng 2 2022/09/20 20:43
- C言語・C++・C# C言語でif文が予想と違う動きをする件について7 4 2023/03/20 00:26
- C言語・C++・C# プログラミングを教えて欲しいです。 配列aは、int a[9]={7,6,12,8,3,5,10,9 4 2022/12/19 23:27
- C言語・C++・C# C言語階乗の総和を求める 2 2023/03/04 23:31
- C言語・C++・C# C++のcinの動作 5 2023/02/26 00:13
- C言語・C++・C# このプログラミングの問題を教えてほしいです。 キーボードからデータ数nとn個のデータを入力し、平均値 3 2022/12/19 22:51
- C言語・C++・C# C言語 3 2022/10/04 15:07
- C言語・C++・C# C++プログラミングコードにポリモーフィズムを取り入れ方を教えてください。 2 2023/06/09 11:17
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
このQ&Aを見た人はこんなQ&Aも見ています
-
どうして+3
C言語・C++・C#
-
プログラミング言語についてc++に空白あると同じ文字を再度繰り返して処理しないといけないので2倍動作
C言語・C++・C#
-
今ってプログラミング言語は何が中心?
C言語・C++・C#
-
-
4
2つほどお聞きしたいことがあり、答えてもらえると助かります。 1つ目は、チャットGPTにあらかじめ、
C言語・C++・C#
-
5
パソコン
C言語・C++・C#
-
6
C言語 関数、変数の宣言について
C言語・C++・C#
-
7
c++の勉強方法を教えてくださいプログラミングをやった事がなく1から勉強を始めようと思います1日1時
C言語・C++・C#
-
8
至急助けてください!!!あと2時間しかないです! ボタンを押したら0ランプが点灯し、コンマ5秒後に1
その他(プログラミング・Web制作)
-
9
DNCL(共テ用プログラミング言語)について 写真の(12)のプログラムにおいて、解説によると(12
C言語・C++・C#
-
10
Cのプログラムからアクセスできないファイル名の一括変更方法
C言語・C++・C#
-
11
C言語について(初心者)
C言語・C++・C#
-
12
あってる
C言語・C++・C#
-
13
DNCL(共テ用プログラミング言語)について 写真の(12)のプログラムにおいて、解説によると(12
C言語・C++・C#
-
14
プログラミングc++を全く分からない状態から習得するまでどれくらいかかりますか?なぜ難しいと言われて
C言語・C++・C#
-
15
Pythonでの文字列からfloatへの変換エラー
その他(プログラミング・Web制作)
-
16
C言語のことです。写真(見にくくてすいません)の下のプログラムを実行したいのですが四行目がおかしいと
C言語・C++・C#
-
17
C# で 数式文字列処理を処理する方法
C言語・C++・C#
-
18
プログラミングについて プログラミングの練習(勉強)ができるようなサイトなどありませんか? あれば教
その他(プログラミング・Web制作)
-
19
プログラミング言語について
その他(プログラミング・Web制作)
-
20
python エラー
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「指定されたキャストは有効で...
-
ラップ関数とはどんなものですか?
-
#define _CRT_SECURE_NO_WARNIN...
-
C言語での引数の省略方法
-
ヒープソートを教えてください
-
足して100になるような乱数のア...
-
C#初心者です。 ポッポが、飴と...
-
プログラミングの質問です。 #i...
-
桁あふれ誤差のプログラムで質...
-
C++プログラミングコードにポリ...
-
課題なんですが・・・
-
acceptをalarmでタイムアウトさ...
-
構造体の勉強中です 合計点の高...
-
C言語 エラーの原因がわからな...
-
ロシア語の翻訳(パソコン関連)
-
C++でどうすればcoutで表示でき...
-
n × n の二次元配列の各要素に ...
-
int16_t の _t は何?
-
C++でvectorにテキストファイル...
-
VB.NET DLL 参照型String読込み
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「指定されたキャストは有効で...
-
C言語での引数の省略方法
-
複数桁10進数の*桁目だけを抽出...
-
C言語 エラーの原因がわからな...
-
#define _CRT_SECURE_NO_WARNIN...
-
ラップ関数とはどんなものですか?
-
【C++】関数ポインタの使い方
-
実数の整数部,小数部の取得
-
int型の変数値をバイト列として...
-
std::set<int> で、ある値が何...
-
PowerShellがうまくいかない
-
(int *)の意味
-
CStringの配列要素を関数で受け...
-
ColorをRGBで指定する方法
-
「{ } で囲むだけ」は正しい?
-
acceptをalarmでタイムアウトさ...
-
if と配列の組み合わせ
-
read関数をノンブロッキングで...
-
(マルチスレッド)_beginthrea...
-
int16_t の _t は何?
おすすめ情報