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

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

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

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

C++

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

Q&A

解決済

1回答

2187閲覧

競技プログラミング poj 問題について

modonokouki

総合スコア26

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

C++

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

1グッド

1クリップ

投稿2016/07/13 02:17

編集2016/07/13 03:50

http://poj.org/problem?id=3617

上記のリンクの問題を考えていたのですがどの辺りにエラーが発生しているのかわからなくて困っているので良かったら見ていただきたいです。

条件としては
Input

  • Line 1: A single integer: N
  • Lines 2..N+1: Line i+1 contains a single initial ('A'..'Z') of the cow in the ith position in the original line

一番最初の行は文字列の個数
次の行から一文字ずつ記入していく

Output

The least lexicographic string he can make. Every line (except perhaps the last one) contains the initials of 80 cows ('A'..'Z') in the new line.

そして80行ごとに改行を行う(おそらく)

エラーとしてはwrong answerとしか出ないのでコンパイルエラーや時間が足りないなどのエラーはないと考えています。

終端文字の格納の仕方や題意に沿ってない部分がありましたら指摘いただきたいです

Input

6
A
C
D
B
C
B

Output

ABCBCD

ソースコード

C++ #include <iostream> #include <algorithm> #include <vector> using namespace std; const int N = 2000; int n; int i,j; int flag=0; char s[N+1]; char e[N+1]; char l; int main(){ scanf("%d",&n); for(int p=0;p<n;p++){ scanf("%c",&l); scanf("%c",&s[p]); } i=0;j=n-1; while(i<=j){ if(s[i]<s[j]){ e[flag]=s[i]; i++; } else { e[flag]=s[j]; j--; } flag++; } for(i=0;i<n;i++){ printf("%c",e[i]); } printf("\n"); return 0; }

よろしければご教授していただきたいです。

mondaminZ👍を押しています

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

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

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

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

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

episteme

2016/07/13 02:38

質問になっていない。このコードに対しあなたの意図していたふるまいは何か、それに対し実際にはどうふるまうのか。それが説明できなければ「うまくうごきません。誰か直してください」と丸投げしているのと同じだ。
modonokouki

2016/07/13 02:53

Inputのような振る舞いを期待していて実際このコードでInputのような振る舞いをするのですが、なぜacceptされないのかを質問したつもりでした。epistemeさんの仰るとおりでほぼまるなげしてます笑
episteme

2016/07/13 03:03 編集

acceptされる/されない条件を示してください。それがないと判断できんでしょ? あるいはrejectされた際、なんかメッセージが出力されませんでした?
modonokouki

2016/07/13 03:44

すいません、自分の表記の仕方がおそらく良くなかったと思います。acceptされる条件など指摘していただいた情報についてあまり記載していなかったのでもう一度書きなおして投稿します。また何かありましたら指摘お願い致します
guest

回答1

0

ベストアンサー

明らかに設問にある条件を満たしていない箇所をひとつ。

80文字ごとに改行していない

投稿2016/07/13 03:59

episteme

総合スコア16614

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

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

modonokouki

2016/07/13 04:03

#include <iostream> #include <algorithm> #include <vector> using namespace std; const int N = 2000; int n; int i,j; int flag=0; char s[N+1]; char e[N+1]; char l; int main(){ scanf("%d",&n); for(int p=0;p<n;p++){ //scanf("%c",&l); scanf("%c",&s[p]); } i=0;j=n-1; while(i<=j){ if(s[i]<s[j]){ e[flag]=s[i]; i++; } else { e[flag]=s[j]; j--; } flag++; } for(i=1;i<=n;i++){ printf("%c",e[i-1]); if(i%80==0&&i!=n){ printf("\n"); } } printf("\n"); return 0; } すいません、まちがえてベストアンサーにしてしまったのですが改行してもうまく行きませんでした..
episteme

2016/07/13 04:08

わかりませんねー。 そもそもC++と言いながらナカミはべたべたのCだし、冒頭3行の #include に意味ないし、printf/scanf使っていながら#include <cstdio> してないし。
modonokouki

2016/07/13 04:59

すいません、普通にいじってたら出来ました!笑
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問