Mam takie zadanie: Mecze
i znalazłem rozwiązania w internecie, (tutaj podaje przerobione tak żeby było jak najbardziej czytelne):
#include <bits/stdc++.h>
using namespace std;
int main(){
ios::sync_with_stdio(0);
cin.tie(NULL);
vector<long long> hashed (10); //taka wielkosc zebym widzial co sie dziejej w tablicy w debuggerze
int n, m, player_id;
cin >> n >> m;
while(m--){
for (int i = 0; i < n; i++){
cin >> player_id;
hashed[player_id-1]*=2;
if (i<n/2)
hashed[player_id-1]++;
}
}
sort(hashed.begin(),hashed.begin()+n);
for (int i = 1; i < n; i++){
if (hashed[i-1]==hashed[i]){
cout << "NIE\n";
return 0;
}
}
cout << "TAK\n";
return 0;
}
No i widzę że komórke dla każdego gracza podnosimy zawsze do kwadratu, i dla graczy z pierwszej drużyny dodajemy 1. na koniec sprawdzamy czy jakiś wynik się powtórzył, tylko co to wszytsko ma na celu i dlaczego działa?