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大好き(けど解けなかった悔しい