質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

2回答

617閲覧

AtCoder ABC172 C問題でACできません

Yug00

総合スコア2

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2020/06/29 12:11

C問題 Tundoku

ABC172のC問題でACできません。

queueで2つの本の山の先頭でより小さい方を選んで、残りの時間を順に減らしていこうとしたのですが、テストケースが大きいとREやWAが出てしまいます。

何回も調べてみてわからなかったのでよろしくお願い致します。

ソースコード

C++

1#include <iostream> 2#include <queue> 3using namespace std; 4 5int solve (int &l ,int &k , queue<int> &a , queue<int> &b) { 6 int ans = 0 , aa, bb; 7 for (int i = 0 ; i < l ; i ++) { 8 aa = a.front(); 9 bb = b.front(); 10 11 if (b.empty() || aa <= bb) { //Bが空かAの先頭がより小さいならAを選ぶ 12 ans ++; 13 k -= aa; 14 a.pop(); 15 // cout << "a " << aa << endl; 16 } else if (a.empty() || aa > bb) { 17 ans ++; 18 k -= bb; 19 b.pop(); 20 // cout << "b " << bb << endl; 21 } 22 23 // cout << "k " << k << endl; 24 // cout << "ans " << ans << endl; 25 26 if (k == 0) { 27 break; 28 } else if (k < 0){ //Kが小さくなりすぎたら 29 ans --; 30 break; 31 } 32 33 } 34 35 return ans; 36 37} 38 39int main(){ 40 int n , m , k , tmp; 41 cin >> n >> m >> k; 42 queue<int> a , b; 43 for (int i = 0 ; i < n ; i ++) { cin >> tmp; a.push(tmp); } 44 for (int i = 0 ; i < m ; i ++) { cin >> tmp; b.push(tmp); } 45 int l = n + m; 46 47 cout << solve(l, k , a , b) << endl; 48} 49

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

公式の解説動画をご覧ください。すぬけさんがわかりやすく解説しておられます。
https://youtu.be/v8ppNGf49Nk?t=4795

PDFよりだいぶわかりやすいので毎回観ることをオススメします。
コンテスト終了直後からライブ配信されますが、リアルタイムで観ている場合はチャットで質問できます。

投稿2020/06/29 17:40

magf

総合スコア212

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Yug00

2020/06/29 20:42

ありがとうございます! いつもPDFだけ見てました。 こっちも見てみようと思います!
guest

0

ベストアンサー

机Aと机Bの現在の最上段のみを見て次に読むべき本を決めていることが問題です
例えば

5 5 150 10 30 10 10 10 20 20 20 20 20

のような入力が合ったとき、どうあるべきかを考えてみてください

投稿2020/06/29 12:59

hiroCSJT

総合スコア93

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Yug00

2020/06/29 20:44

ありがとうございます! より長い視点が要ったんですね。 何がいけないのか分かりました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問