NPSC補完計劃

登入註冊帳號.

請輸入帳號, 密碼以及預計登入時間
進階搜尋  

最新消息:

歡迎光臨NPSC補完計劃

+ NPSC補完計劃 » NPSC高中組 » NPSC2019高中組初賽
 G. 盤子分類

作者 主題: G. 盤子分類  (閱讀 128 次)

Felicity

  • 初級會員
  • **
  • 文章數: 24
    • 檢視個人資料
G. 盤子分類
« 於: 十一月 22, 2019, 08:15:24 pm »

這題分成兩個情況做:一個是Y上W下,一個W上Y下(上下是指輸入順序)
如有誤,麻煩指出,謝謝
引用
#include<cstdlib>
#include<cstdio>
#include<cstring>
char sa[20001],sb[20001];
int main()
{
   scanf("%s %s",sa,sb);
   int i,y=0,yy=0,ww=0,w=0,wa=0,wb=0,ans=0;
   for(i=0;i<strlen(sa);i++)
   {
      if(sa=='Y')
      {
         wa+=i-y;
         y++;
      }
      else
      {
         wb+=i-w;
         w++;
      }
   }
   for(i=0;i<strlen(sb);i++)
   {
      if(sb=='W')
      {
         wa+=i+y-ww;
         ww++;
      }
      else
      {
         wb+=i+w-yy;
         yy++;
      }
   }
   ans=(wa>wb?wb:wa);
   y=0,yy=0,ww=0,w=0,wa=0,wb=0;
   for(i=0;i<strlen(sb);i++)
   {
      if(sb=='Y')
      {
         wa+=i-y;
         y++;
      }
      else
      {
         wb+=i-w;
         w++;
      }
   }
   for(i=0;i<strlen(sa);i++)
   {
      if(sa=='W')
      {
         wa+=i+y-ww;
         ww++;
      }
      else
      {
         wb+=i+w-yy;
         yy++;
      }
   }
   if(wa<ans)
      ans=wa;
   if(wb<ans)
      ans=wb;
   printf("%d\n",ans);
   return 0;
 }
記錄
+ NPSC補完計劃 » NPSC高中組 » NPSC2019高中組初賽
 G. 盤子分類