#34598: 請問如何才能不超時?


s110128@student.cysh.cy.edu.tw (梁家華)

學校 : 國立嘉義高級中學
編號 : 203462
來源 : [116.89.143.223]
最後登入時間 :
2023-06-18 18:10:36
b582. 一個窩 -- 嘉義高中104資料學科能力競賽 | From: [116.89.140.54] | 發表日期 : 2023-04-02 14:13

#include <bits/stdc++.h>

 

using namespace std;

int x[1000005],y[100005];

int main()

{

        

    ios::sync_with_stdio(false);

    cin.tie(0);

 

    int t,n,m;

    unsigned long long int ans;

    while(cin>>t)

    {

        while(t--)

        {

            cin>>n;

            for(int i=0;i<n;i++)

            cin>>x[i]>>y[i];

 

            sort(x,x+n);

            sort(y,y+n);

       

            if(n%2==0)

                m=n/2;

            else

                m=(n-1)/2;

        

            ans=0;

            for (int i=0;i<n;i++)

                ans+=abs(x[i]-x[m])+abs(y[i]-y[m]);

            cout<<ans<<endl;

        }

    }

return 0;   

}

 

 

 

最後一筆資料一直 TLE

請問各位大老有沒有辦法解決

 
#34613: Re: 請問如何才能不超時?


cges30901 (cges30901)

學校 : 不指定學校
編號 : 30877
來源 : [111.71.216.22]
最後登入時間 :
2024-12-03 08:31:08
b582. 一個窩 -- 嘉義高中104資料學科能力競賽 | From: [118.231.152.169] | 發表日期 : 2023-04-03 09:58

#include

 

using namespace std;

int x[1000005],y[100005];

int main()

{

        

    ios::sync_with_stdio(false);

    cin.tie(0);

 

    int t,n,m;

    unsigned long long int ans;

    while(cin>>t)

    {

        while(t--)

        {

            cin>>n;

            for(int i=0;i

            cin>>x[i]>>y[i];

 

            sort(x,x+n);

            sort(y,y+n);

       

            if(n%2==0)

                m=n/2;

            else

                m=(n-1)/2;

        

            ans=0;

            for (int i=0;i

                ans+=abs(x[i]-x[m])+abs(y[i]-y[m]);

            cout<

        }

    }

return 0;   

}

 

 

 

最後一筆資料一直 TLE

請問各位大老有沒有辦法解決


我的作法是輸入不要用cin,用getchar_unlocked()做一個輸入的函式

AC 1.1s

 
ZeroJudge Forum