POJ 3617 Best Cow Line

解説
蟻本に書いてある。が、80文字で改行とfrontとbackが同じことも考えるということを忘れていて5回ぐらいWAなりPEなり出された。

#include <iostream>
#include <cstdio>
#include <vector>

using namespace std;

int main(){
  int n,c=0;
  char a;
  vector<char> cv;
  cin >> n;
  for(int i = 0; i < n; i++){
    cin >> a;
    cv.push_back(a);
  }
  
  int l = 0, r = n-1;
  bool left;
  while(l <= r){
    c++;
    left = false;
    for(int i = 0; l + i <= r; i++){
      if(cv[l + i] < cv[r - i]){
	left = true;
	break;
      }else if(cv[l + i] > cv[r - i]){
	left = false;
	break;
      }
    }
    if(left) putchar(cv[l++]);
    else putchar(cv[r--]);
    if(c==80){
      putchar('\n');
      c = 0;
    }
  }
  putchar('\n');
}

個人的にはこのコードでどうにか通したかった...

#include <iostream>
#include <deque>
#include <string>

using namespace std;

int main(){
  int n;
  char a;
  deque<char> deq;
  string ans = "";
  cin >> n;
  for(int i = 0; i < n; i++){
    cin >> a;
    deq.push_back(a);
  }
  for(int i = 0; i < n; i++){
    if(deq.front() < deq.back()){
      ans += deq.front();
      deq.pop_front();
    }else{
      ans += deq.back();
      deq.pop_back();
    }
  }  
  cout << ans << endl;
}

deque大好き(けど解けなかった悔しい