НУЖНА ПОМОЩЬ В С++ВЫДАЕТ Time Limit Exceeded НУЖНО ОПТИМИЗИРОВАТЬ КОД#include using...

0 голосов
144 просмотров

НУЖНА ПОМОЩЬ В С++ВЫДАЕТ Time Limit Exceeded НУЖНО ОПТИМИЗИРОВАТЬ КОД#include using namespace std;int main(){int a,b,c,i,y;cin>>a;int A[a];int B[a];for(i=0;i{cin>>b;A[i]=b;cin>>c;B[i]=c;}for(i=0;i{for(y=i+1;y{if(B[y]>B[i] || B[y]==B[i] && A[i]>A[y]){c=B[i];B[i]=B[y];B[y]=c;c=A[i];A[i]=A[y];A[y]=c;}}}for(i=0;icout<return 0;}


Информатика (103 баллов) | 144 просмотров
0

жуткий код

0

Что вообще программа делать должна?

0

Если ваш код точно такой же как вы скинули выше, то оно не должно даже компилироваться. for(i=0;i{ - это что такое ?

Дан 1 ответ
0 голосов

#include //Если обьявили подключение библиотеки,то уж напишите что подкулючаете

using namespace std;

int main()

{

int a, b, c, i, y;

cin >> a;

//int A[a];  В плюсах такого нет! если размерность массива заранее не предопределена(например int a=10),то компилятор такого не пропустит.Нужно использовать динамику

int *A = new int[a];

int *B = new int[a];

 

//for (i = 0; i{Где вы такой цикл For Нашли? почитайте про циклы в плюсах

for (int i = 0; i < a;i++){

 cin >> b;

 A[i] = b;

 cin >> c;

 B[i] = c;

}

for (int i = 0; i

for (int y = i + 1; y

{

 if (B[y]>B[i] || B[y] == B[i] && A[i]>A[y])  

 {

   c = B[i];

   B[i] = B[y];

   B[y] = c;

   c = A[i];

   A[i] = A[y];

   A[y] = c;

 }

 }

 

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

 cout

 system("pause");

 return 0;

}

(306 баллов)
0

поповоду int A[a] - неправда..

0

Что значит неправда? в таких случая нужно использовать динамические масисвы а не статические

0

Дело в том,что если ты хочешь выделить память под массив,размерность которого не известна до компиляции

0

статикой,такой код просто не скомпилируется

0

Спорим скомпилится?)

0

Ну попробуй проинициализировать статический массив без заранее известного размера .Будет интересно посмотреть