[Logo] Mendo Judge Discussion Board - Forums
  [Search] Search   [Recent Topics] Recent Topics   [Hottest Topics] Hottest Topics   [Members]  Member Listing   [Groups] Back to home page 
Баба Рада и Баба Нада  XML
Forum Index » Задачи од национални натпревари
Author Message
MODDI



Joined: 27/12/2017 18:17:00
Messages: 39
Offline

Значи кодов знам дека ми паѓа на време но работи во сите случаеви па некоја идеја да го намалам времето или треба некој друг начин. Малку помош?
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int N;
cin>>N;
int A[N];
for(int i=0;i<N;i++)
cin>>A[i];
for(int i=0;i<N;i++)
{
for(int j=i+1;j<N;j++)
{
if(A[i]<A[j])
{
int pom=A[i];
A[i]=A[j];
A[j]=pom;
}
}
}
int zbir=A[0];
int razlika=A[0];
for(int i=1;i<N;i++)
{
zbir+=A[i];
razlika-=A[i];
}
if(razlika>=0)
cout<<razlika+zbir;
else
cout<<zbir<<endl;
return 0;

}
MOI



Joined: 07/07/2010 16:31:48
Messages: 447
Offline

MODDI wrote:Значи кодов знам дека ми паѓа на време но работи во сите случаеви па некоја идеја да го намалам времето или треба некој друг начин. Малку помош?

Па, тој делот со подредувањето (двата вгнездени for циклуси) можеш да ги замениш со sort(A, A+N) и reverse(A, A+N). Тоа е и полесно да се напише.
Понатаму, за zbir и razlika користи нешто како long long наместо int. Вака:
MODDI



Joined: 27/12/2017 18:17:00
Messages: 39
Offline

MOI wrote:
MODDI wrote:Значи кодов знам дека ми паѓа на време но работи во сите случаеви па некоја идеја да го намалам времето или треба некој друг начин. Малку помош?

Па, тој делот со подредувањето (двата вгнездени for циклуси) можеш да ги замениш со sort(A, A+N) и reverse(A, A+N). Тоа е и полесно да се напише.
Понатаму, за zbir и razlika користи нешто како long long наместо int. Вака:

Кодот работи така беше, Благодарам Многу
 
Forum Index » Задачи од национални натпревари
Go to:   
Powered by JForum 2.1.8 © JForum Team