Помощь с олимпиадой, что можно сделать с программой?

сиськи
Начинающий
Статус
Оффлайн
Регистрация
17 Окт 2020
Сообщения
71
Реакции[?]
14
Поинты[?]
0
Задача 5: Древнее имя
Катя очень любит историю, поэтому ей подарили книгу про древние индейские имена. В книге утверждается, что коэффициент древности имени равен количеству таких пар букв имени, что первая буква пары стоит в имени раньше второй, и при этом первая буква пары и в алфавите стоит раньше второй.

Катя так восхитилась данным способом, что сразу же захотела подсчитать древность своего любимого индейского имени.

Входные данные
В первой строке входных данных содержится целое число N (1 ≤ N ≤ 105) — длина любимого индейского имени Кати.

Во второй строке содержится последовательность из N строчных букв английского алфавита — любимое индейское имя Кати.

Выходные данные
Выведите единственное целое число — коэффициент древности имени.

Обратите внимание, что при данных ограничениях ответ может быть больше, чем возможное значение 32-битной целочисленной переменной, поэтому необходимо использовать 64-битные числа (тип int64 в языке Pascal, тип long long в C и C++, тип long в Java и C#).

код:
C++:
 #include <bits/stdc++.h>
using namespace std;
int main(){
   int n;
   string s;
   cin>>n>>s;
   int x=0;
   for(int i=0; i<s.size(); i++)
    for(int j=i; j<s.size(); j++)
            if(char(s[i])<char(s[j]))x++;

   cout<<x;
   return 0;
}
Программа не проходит, потому что превышено максимальное время работы, что можно сделать с программой?
 
Новичок
Статус
Оффлайн
Регистрация
28 Окт 2021
Сообщения
2
Реакции[?]
0
Поинты[?]
0
Задача 5: Древнее имя
Катя очень любит историю, поэтому ей подарили книгу про древние индейские имена. В книге утверждается, что коэффициент древности имени равен количеству таких пар букв имени, что первая буква пары стоит в имени раньше второй, и при этом первая буква пары и в алфавите стоит раньше второй.

Катя так восхитилась данным способом, что сразу же захотела подсчитать древность своего любимого индейского имени.

Входные данные
В первой строке входных данных содержится целое число N (1 ≤ N ≤ 105) — длина любимого индейского имени Кати.

Во второй строке содержится последовательность из N строчных букв английского алфавита — любимое индейское имя Кати.

Выходные данные
Выведите единственное целое число — коэффициент древности имени.

Обратите внимание, что при данных ограничениях ответ может быть больше, чем возможное значение 32-битной целочисленной переменной, поэтому необходимо использовать 64-битные числа (тип int64 в языке Pascal, тип long long в C и C++, тип long в Java и C#).

код:
C++:
 #include <bits/stdc++.h>
using namespace std;
int main(){
   int n;
   string s;
   cin>>n>>s;
   int x=0;
   for(int i=0; i<s.size(); i++)
    for(int j=i; j<s.size(); j++)
            if(char(s[i])<char(s[j]))x++;

   cout<<x;
   return 0;
}
Программа не проходит, потому что превышено максимальное время работы, что можно сделать с программой?
чел а как вообще это решать, типо какой файл отправлять и что писать там где язык
 
Начинающий
Статус
Оффлайн
Регистрация
28 Окт 2021
Сообщения
9
Реакции[?]
4
Поинты[?]
0
Задача 5: Древнее имя
Катя очень любит историю, поэтому ей подарили книгу про древние индейские имена. В книге утверждается, что коэффициент древности имени равен количеству таких пар букв имени, что первая буква пары стоит в имени раньше второй, и при этом первая буква пары и в алфавите стоит раньше второй.

Катя так восхитилась данным способом, что сразу же захотела подсчитать древность своего любимого индейского имени.

Входные данные
В первой строке входных данных содержится целое число N (1 ≤ N ≤ 105) — длина любимого индейского имени Кати.

Во второй строке содержится последовательность из N строчных букв английского алфавита — любимое индейское имя Кати.

Выходные данные
Выведите единственное целое число — коэффициент древности имени.

Обратите внимание, что при данных ограничениях ответ может быть больше, чем возможное значение 32-битной целочисленной переменной, поэтому необходимо использовать 64-битные числа (тип int64 в языке Pascal, тип long long в C и C++, тип long в Java и C#).

код:
C++:
 #include <bits/stdc++.h>
using namespace std;
int main(){
   int n;
   string s;
   cin>>n>>s;
   int x=0;
   for(int i=0; i<s.size(); i++)
    for(int j=i; j<s.size(); j++)
            if(char(s[i])<char(s[j]))x++;

   cout<<x;
   return 0;
}
Программа не проходит, потому что превышено максимальное время работы, что можно сделать с программой?
Получилось сделать что-нибудь?
 
Начинающий
Статус
Оффлайн
Регистрация
29 Июн 2020
Сообщения
18
Реакции[?]
15
Поинты[?]
0
Задача 5: Древнее имя
Катя очень любит историю, поэтому ей подарили книгу про древние индейские имена. В книге утверждается, что коэффициент древности имени равен количеству таких пар букв имени, что первая буква пары стоит в имени раньше второй, и при этом первая буква пары и в алфавите стоит раньше второй.

Катя так восхитилась данным способом, что сразу же захотела подсчитать древность своего любимого индейского имени.

Входные данные
В первой строке входных данных содержится целое число N (1 ≤ N ≤ 105) — длина любимого индейского имени Кати.

Во второй строке содержится последовательность из N строчных букв английского алфавита — любимое индейское имя Кати.

Выходные данные
Выведите единственное целое число — коэффициент древности имени.

Обратите внимание, что при данных ограничениях ответ может быть больше, чем возможное значение 32-битной целочисленной переменной, поэтому необходимо использовать 64-битные числа (тип int64 в языке Pascal, тип long long в C и C++, тип long в Java и C#).

код:
C++:
 #include <bits/stdc++.h>
using namespace std;
int main(){
   int n;
   string s;
   cin>>n>>s;
   int x=0;
   for(int i=0; i<s.size(); i++)
    for(int j=i; j<s.size(); j++)
            if(char(s[i])<char(s[j]))x++;

   cout<<x;
   return 0;
}
Программа не проходит, потому что превышено максимальное время работы, что можно сделать с программой?
Для просмотра содержимого вам необходимо авторизоваться.
 
Олдфаг
Статус
Оффлайн
Регистрация
18 Фев 2019
Сообщения
2,826
Реакции[?]
1,853
Поинты[?]
24K
Кто-нибуть решил 2 номер, помогите,пожалуйста.
Если Вы не способны реализовывать алгоритм по готовому шаблону действий - мне очень жаль, но дальше первого этапа Вы не пройдёте. Практика - единственный вариант научиться спортивному программированию.
 
Начинающий
Статус
Оффлайн
Регистрация
28 Окт 2021
Сообщения
9
Реакции[?]
4
Поинты[?]
0
Кто-нибуть решил 2 номер, помогите,пожалуйста.
a=int(input())

b=int(input())

c=int(input())

n=int(input())

k=int(input())

d=n//3

s=d*(a+b+c)

if k==1:

if n%3==1:

s+=a

elif n%3==2:

s+=a

s+=b

if k==2:

if n%3==1:

s+=b

elif n%3==2:

s+=b

s+=c

if k==3:

if n%3==1:

s+=c

elif n%3==2:

s+=c

s+=a

print(s)
 
Олдфаг
Статус
Оффлайн
Регистрация
18 Фев 2019
Сообщения
2,826
Реакции[?]
1,853
Поинты[?]
24K
a=int(input())

b=int(input())

c=int(input())

n=int(input())

k=int(input())

d=n//3

s=d*(a+b+c)

if k==1:

if n%3==1:

s+=a

elif n%3==2:

s+=a

s+=b

if k==2:

if n%3==1:

s+=b

elif n%3==2:

s+=b

s+=c

if k==3:

if n%3==1:

s+=c

elif n%3==2:

s+=c

s+=a

print(s)
Наконец-то хоть кто-то додумался. Это за 9-11 олимпиада? Если да, то очень странно, почему хромает уровень подготовки.
 
Новичок
Статус
Оффлайн
Регистрация
28 Окт 2021
Сообщения
2
Реакции[?]
0
Поинты[?]
0
Наконец-то хоть кто-то додумался. Это за 9-11 олимпиада? Если да, то очень странно, почему хромает уровень подготовки.
братан мы в школах в 10 классе максимум что проходим это как составлять таблицы в exсel ни о каких языках программирования даже речи нету, при том что у нас технологический профиль
 
Новичок
Статус
Оффлайн
Регистрация
28 Окт 2021
Сообщения
1
Реакции[?]
0
Поинты[?]
0
a=int(input())

b=int(input())

c=int(input())

n=int(input())

k=int(input())

d=n//3

s=d*(a+b+c)

if k==1:

if n%3==1:

s+=a

elif n%3==2:

s+=a

s+=b

if k==2:

if n%3==1:

s+=b

elif n%3==2:

s+=b

s+=c

if k==3:

if n%3==1:

s+=c

elif n%3==2:

s+=c

s+=a

print(s)
КАКОЙ ЯЗЫК?
 
Сверху Снизу