Submission #1093655

#TimeUsernameProblemLanguageResultExecution timeMemory
1093655vjudge1Genetics (BOI18_genetics)C++17
100 / 100
260 ms36480 KiB
#include <bits/stdc++.h>
using namespace std;

const long long inf = 1e10;

mt19937 rng(chrono::steady_clock().now().time_since_epoch().count());
uniform_int_distribution<long long> D(1, inf);

string adn[4104];
unsigned long long val[4104], _hash[4104];
unsigned long long sum[256], total;

signed main() {
	ios_base::sync_with_stdio(0);
	cin.tie(0); cout.tie(0);
	int n, m, k; cin >> n >> m >> k;
	for (int i = 1; i <= n; ++i) cin >> adn[i], val[i] = D(rng);
	for (int i = 0; i < m; ++i) {
		total = 0;
		for (int j = 1; j <= n; ++j) sum[adn[j][i]] += val[j], total += val[j];
		for (int j = 1; j <= n; ++j) _hash[j] += total - sum[adn[j][i]];
		for (int j = 1; j <= n; ++j) sum[adn[j][i]] -= val[j];
	}
	for (int i = 1; i <= n; ++i) if (_hash[i] == (total - val[i]) * k) {cout << i << '\n'; return 0;}
}

Compilation message (stderr)

genetics.cpp: In function 'int main()':
genetics.cpp:20:45: warning: array subscript has type 'char' [-Wchar-subscripts]
   20 |   for (int j = 1; j <= n; ++j) sum[adn[j][i]] += val[j], total += val[j];
      |                                             ^
genetics.cpp:21:65: warning: array subscript has type 'char' [-Wchar-subscripts]
   21 |   for (int j = 1; j <= n; ++j) _hash[j] += total - sum[adn[j][i]];
      |                                                                 ^
genetics.cpp:22:45: warning: array subscript has type 'char' [-Wchar-subscripts]
   22 |   for (int j = 1; j <= n; ++j) sum[adn[j][i]] -= val[j];
      |                                             ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...