【POJ 3617】【贪心】Best Cow Line

 还是在书上看到的。结果漏看了条件一直A不了,算是贪心的,就是判断最后一个和第一个哪个字典序小,如果一样的话就是输什么都一样。

#include "iostream"
#include "string.h"
using namespace std;
int main(int argc, char const *argv[])
{
  int flag;
  int num;
  char  s[3000];
  while(cin>>num)
  {
    flag=0;
    memset(s,0,sizeof(s));
    for (int i = 0; i < num; ++i)
    {
      cin>>s[i];
    }
    int begin=0;int end=strlen(s)-1;
    while(begin<=end)
    {
      bool left = false;
      for (int i = 0; begin+i <=end; ++i)
      {
          if(s[begin+i]<s[end-i])
          {
            left=true;
            break;
          }
          else if (s[begin+i]>s[end-i])
          {
            left=false;
            break;
          }
      }
      if(left) putchar(s[begin++]);
      else putchar(s[end--]);
      flag++;
      if(flag%80==0) printf("\n");// 在别的地方的遇到,当时直接就敲了,后面看了原题才发现有这个要求。
    }
    putchar('\n');
  }
  return 0;
}


你可能感兴趣的:(【POJ 3617】【贪心】Best Cow Line)