NPSC補完計劃

登入註冊帳號.

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

最新消息:

歡迎光臨NPSC補完計劃

+ NPSC補完計劃 » NPSC國中組 » NPSC2016國中組初賽
 C 保羅的寶貝

作者 主題: C 保羅的寶貝  (閱讀 392 次)

Felicity

  • 初級會員
  • **
  • 文章數: 20
    • 檢視個人資料
C 保羅的寶貝
« 於: 十一月 13, 2017, 06:06:22 pm »

只有試過數字比較小的測資
因為數字太大Dev-C++會當掉
代碼: [選擇]
#include<stdlib.h>
#include<stdio.h>
int main()
{
    int N,M,i,j,a=0;
    scanf("%d %d",&N,&M);
    int n[N],m[M];
    long long ans=0,add=0;
    for(i=0;i<N;i++)
scanf("%d",&n[i]);
    for(i=0;i<M;i++)
scanf("%d",&m[i]);
    for(i=0;i<N;i++)
    {
        a=0;
        for(j=0;j<N;j++)
        {
        if(n[j]>n[a])
            a=j;
        }
        add=n[a];
        n[a]=0;
        a=0;
        while(m[a]==0)
    a++;
        for(j=0;j<M;j++)
        {
        if(m[j]<m[a]&&m[j]!=0)
        a=j;
        }
        add*=m[a];
        m[a]=0;
        ans+=add;
    }
    printf("%lld",ans);
    return 0;
}
« 上次編輯: 十一月 13, 2017, 07:05:44 pm 由 sagit »
記錄

alanalan

  • 新手
  • *
  • 文章數: 6
    • 檢視個人資料
Re: C 保羅的寶貝
« 回覆 #1 於: 一月 26, 2019, 09:56:11 pm »

我的寫法一開始也是這樣寫,但測資一大就會超時,建議使用內建sort函數來排序,速度快很多。
記錄
+ NPSC補完計劃 » NPSC國中組 » NPSC2016國中組初賽
 C 保羅的寶貝