#include <stdio.h>
#include <stdlib.h>
int N, cnt = 0, i;
char S[2001];
void solve(){
int a = 0, b = N-1;
while(a <= b){
int left = 0;
for (i = 0; a+1<=b; i++){
if(S[a+i] < S[b-i]){
left = 1;
break;
}
else if(S[a+i] > S[b-i]){
left = 0;
break;
}
}
if(left)putchar(S[a++]);
else putchar(S[b--]);
cnt++;
if(cnt %80 == 0)putchar('\n');
}
putchar('\n');
}
int main(){
while(scanf("%d",&N)!= EOF){
for(i=0; i<N; i++)
{
getchar(); //避免前面的scanf遺留的換行(\n)讀入
scanf("%c", &S[i]);
}
solve();
}
return 0;
}
2014年8月9日星期六
[POJ] 3617 - Best Cow Line
訂閱:
發佈留言 (Atom)
-
因為先前寫UVa時,檔案名稱有時會花心思改,有時就直接把題目名稱加上.cpp就貼上了 導致現在有不同的格式出現 現在要處理的事情很簡單 1. 去除空白 2. 將底線 ( _ ) 換成dash ( - ) 經過一番查詢,終於發現最簡單的方法 - re...
-
文章出處: http://infbugs.blogspot.tw/2011/12/c_20.html 謝謝沙耶,解答了我長久以來對於 input/output 的疑惑。 C 語言入門 - 在線上批改系統練功 如何練習使用基本語法 自己出個練習題試著寫...
-
一開始用數學方法推斷得出,設輸入為n k為在n的前一斜線列數,故只要找到 (1+k)*k/2 < n 的最大k值,即可判定 k%2 == 1 => ((2*n)-(k*k)-k)/2 / ((k*k)+(3*k)-(2*n)+4)/2 k%2 ==...
沒有留言:
發佈留言