Я решил 1-й из трех этапов всепоглощающего соревнования (теперь оно закончено), но мне интересно знать, есть ли какой-нибудь более простой алгоритм сложности или нет
7 9
5 7
4 2
3 6
2 3
1 7
6 2
4 6
1 5
3 4
int main()
{
ifstream in("domes.in");
ofstream out("domes.out");
int orio,z;
in>>orio;
in>>z;
int domes[orio];
for(int i=0;i<orio;i++){domes[i]=0;}
int k;
for(int i=0;i<2*z;i++)
{
in>>k;
domes[k-1]++;
}
int c=0;
for(int i=0;i<orio;i++)
{
if(domes[i]<2)
c++;
}
out<<c;
return 0;
}
речь идет о некоторых местах (представленных числами), первые два числа — это количество мест (orio) и количество совпадений (z). Места как-то «связаны» (бессмысленно). Вы должны найти, сколько мест имеют менее 2 подключений, и на выходе (в данном случае c) будет указано количество мест, в которых менее 2 подключений. k — это переменная, используемая временно для вставки каждого числа и плюс время его «просмотра». Если это замечено, это означает, что это связано с другим местом. Я не думаю, что есть более простое решение, но некоторым из программ моего партнера требовалось меньше времени для запуска, и это беспокоило меня
Задача ещё не решена.
Других решений пока нет …